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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



   >  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.





[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux