RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4

Поиск
Список
Период
Сортировка
От ldh@laurent-hasson.com
Тема RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4
Дата
Msg-id MN2PR15MB25604A1E1EBBFDB13A736BB385CB9@MN2PR15MB2560.namprd15.prod.outlook.com
обсуждение исходный текст
Ответ на Re: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4  (Julien Rouhaud <rjuju123@gmail.com>)
Ответы RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4  ("ldh@laurent-hasson.com" <ldh@laurent-hasson.com>)
Список 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
thatone 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
installand see if it makes any difference? Or a zip of the lib/bin folders? I found out I could download Visual Studio
communityedition so I am trying this, but may not have the time to get through a build any time soon as per my
unfamiliaritywith the process. I'll follow Ranier's steps and see if that gets me somewhere.
 

Thank you,
Laurent.


В списке pgsql-performance по дате отправления:

Предыдущее
От: "ldh@laurent-hasson.com"
Дата:
Сообщение: RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4 (workarounds)
Следующее
От: Nagaraj Raj
Дата:
Сообщение: Re: pg_restore schema dump to schema with different name