From: | "ldh(at)laurent-hasson(dot)com" <ldh(at)laurent-hasson(dot)com> |
---|---|
To: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4 |
Date: | 2021-08-30 16:04:04 |
Message-ID: | MN2PR15MB25604A1E1EBBFDB13A736BB385CB9@MN2PR15MB2560.namprd15.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
> I tried this scenario using edb's 13.3 x64 install:
>
> postgres=# select version();
> version
> ------------------------------------------------------------
> PostgreSQL 13.3, compiled by Visual C++ build 1914, 64-bit
> (1 row)
>
>
> postgres=# \l postgres
> List of databases
> Name | Owner | Encoding | Collate | Ctype | Access privileges
> ----------+----------+----------+---------+-------+-------------------
> postgres | postgres | UTF8 | C | C |
> (1 row)
>
> postgres=# explain (analyze,buffers,COSTS,TIMING) postgres-# select
> MAX(toFloat(a, null)) as "a" from sampletest;
> QUERY PLAN
> -----------------------------------------------------------------------------------------------------
> -------------------
> Aggregate (cost=2137.00..2137.01 rows=1 width=4) (actual
> time=44962.279..44962.280 rows=1 loops=1)
> Buffers: shared hit=657
> -> Seq Scan on sampletest (cost=0.00..1637.00 rows=100000
> width=15) (actual time=0.009..8.900 rows=100000 loops=1)
> Buffers: shared hit=637
> Planning:
> Buffers: shared hit=78
> Planning Time: 0.531 ms
> Execution Time: 44963.747 ms
> (8 rows)
>
> and with locally compiled REL_13_STABLE's head on the same machine:
>
> rjuju=# select version();
> version
> ------------------------------------------------------------
> PostgreSQL 13.4, compiled by Visual C++ build 1929, 64-bit
> (1 row)
>
> rjuju=# \l rjuju
> List of databases Name | Owner | Encoding | Collate |
> Ctype | Access privileges
> -------+-------+----------+---------+-------+-------------------
> rjuju | rjuju | UTF8 | C | C |
> (1 row)
>
> rjuju-# select MAX(toFloat(a, null)) as "a" from sampletest;
> QUERY PLAN
> -----------------------------------------------------------------------------------------------------
> ------------------
> Aggregate (cost=1477.84..1477.85 rows=1 width=4) (actual
> time=460.334..460.334 rows=1 loops=1)
> Buffers: shared hit=646 read=1
> -> Seq Scan on sampletest (cost=0.00..1197.56 rows=56056
> width=32) (actual time=0.010..7.612 rows=100000 loops=1)
> Buffers: shared hit=637
> Planning:
> Buffers: shared hit=20 read=1
> Planning Time: 0.125 ms
> Execution Time: 460.527 ms
> (8 rows)
>
> Note that I followed [1], so I simply used "build" and "install". I have no
> idea what is done by default and if NLS is included or not.
>
> So if default build on windows has NLS included, it probably means that
> either there's something specific on edb's build (I have no idea how their
> build is produced) or their version of msvc is responsible for that.
>
> [1]: https://www.postgresql.org/docs/current/install-windows-
> full.html#id-1.6.4.8.10
---------------------------------------------------------------------------------------------------------------------------------------------------
Hello,
So you are seeing a 100x difference.
> Execution Time: 44963.747 ms
> Execution Time: 460.527 ms
I see on https://www.postgresql.org/download/ that there is a different installer from 2ndQuadrant. I am going to try that one and see what I come up with. Are there any other "standard" distros of Postgres that I could try out?
Additionally, is there a DLL or EXE file that you could make available to me that I could simply patch on my current install and see if it makes any difference? Or a zip of the lib/bin folders? I found out I could download Visual Studio community edition so I am trying this, but may not have the time to get through a build any time soon as per my unfamiliarity with the process. I'll follow Ranier's steps and see if that gets me somewhere.
Thank you,
Laurent.
From | Date | Subject | |
---|---|---|---|
Next Message | Nagaraj Raj | 2021-08-30 16:52:21 | Re: pg_restore schema dump to schema with different name |
Previous Message | ldh@laurent-hasson.com | 2021-08-30 04:20:38 | RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4 (workarounds) |