[postgis-users] diffrent execution plan on Postgres 9.5 and Postgres 11 for ST_union and performance problem Postgres 11

Lars Aksel Opsahl Lars.Opsahl at nibio.no
Thu Apr 11 03:27:15 PDT 2019


Hi

We are upgrading from Postgres 9.5 to Postgres 11 and have a problem with ST_Union query.

It used around 5 minutts on Postgres 9.5 but on the Postgres 11 it takes around a hour.

This is two different physical servers.

  *   Postgres 11 server (Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz), is running   Redhat 7.0
  *   Postgres 9.5 server ( Intel(R) Xeon(R) CPU E5-2667 v2 @ 3.30GHz) is running Cent 6.9 .

The only index on table in the geo column


  *   Sql and query plan for from Postgres 9.5

POSTGIS="2.2.2 r14797" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.9.2, released 2012/10/08" LIBXML="2.7.6" LIBJSON="0.11" TOPOLOGY RASTER



sl=# EXPLAIN ANALYZE

sl-#     select atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext

sl-#     , st_union(geo) as geo

sl-#     from sde_markslag.markslag_myrikilden_temp

sl-#     group by atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext ;

                                                                    QUERY PLAN

---------------------------------------------------------------------------------------------------------------------------------------------------

                                                                     QUERY PLAN

----------------------------------------------------------------------------------------------------------------------------------------------------

 GroupAggregate  (cost=796867.85..1683469.04 rows=170173000 width=1668) (actual time=20548.994..386236.175 rows=482885 loops=1)

   Group Key: atil, myr, myrtype, myromdanning, myrtypetext, myromdanningtext

   ->  Sort  (cost=796867.85..801122.16 rows=1701723 width=1668) (actual time=19215.245..28191.175 rows=567241 loops=1)

         Sort Key: atil, myr, myrtype, myromdanning, myrtypetext, myromdanningtext

         Sort Method: external merge  Disk: 834880kB

         ->  Seq Scan on markslag_myrikilden_temp  (cost=0.00..180364.23 rows=1701723 width=1668) (actual time=0.115..2625.401 rows=567241 loops=1)

 Planning time: 1.942 ms

 Execution time: 386479.469 ms

(8 rows)



  *   Sql and query plan from Postgres 11

POSTGIS="2.5.2 r17328" [EXTENSION] PGSQL="110" GEOS="3.7.1-CAPI-1.11.1 27a5e771" SFCGAL="1.2.2" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 1.11.4, released 2016/01/25" LIBXML="2.9.1" LIBJSON="0.11" TOPOLOGY RASTER


EXPLAIN ANALYZE

    select atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext

    , st_union(geo) as geo

    from sde_markslag.markslag_myrikilden_temp

    group by atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext ;


                                                                     QUERY PLAN

-------------------------------------------------------------------------------------------------------------------------------------------------------

 Result  (cost=69528.63..120459.99 rows=192000 width=46) (actual time=962.266..3272057.295 rows=482885 loops=1)

   ->  ProjectSet  (cost=69528.63..70539.99 rows=192000 width=46) (actual time=962.262..3272011.001 rows=482885 loops=1)

         ->  HashAggregate  (cost=69528.63..69531.03 rows=192 width=46) (actual time=962.214..3268248.140 rows=166 loops=1)

               Group Key: atil, myr, myrtype, myromdanning, myrtypetext, myromdanningtext

               ->  Seq Scan on markslag_myrikilden_temp  (cost=0.00..59601.91 rows=567241 width=1614) (actual time=0.012..336.203 rows=567241 loops=1)

 Planning Time: 0.163 ms

 Execution Time: 3272080.299 ms

(7 rows)


So on Postgres 9.5 we see groupAggregate but not on postgres 11.

If I on postgres 11 tests with ST_collect it's very fast, bu we can not use that result.


EXPLAIN ANALYZE

select atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext , (ST_dump(st_Collect(geo))).geom as geo

from sde_markslag.markslag_myrikilden_temp

group by atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext ;


                                                                      QUERY PLAN

-------------------------------------------------------------------------------------------------------------------------------------------------------

 Result  (cost=69528.63..120459.99 rows=192000 width=46) (actual time=934.723..5611.094 rows=567241 loops=1)

   ->  ProjectSet  (cost=69528.63..70539.99 rows=192000 width=46) (actual time=934.720..5556.601 rows=567241 loops=1)

         ->  HashAggregate  (cost=69528.63..69531.03 rows=192 width=46) (actual time=934.684..1554.725 rows=166 loops=1)

               Group Key: atil, myr, myrtype, myromdanning, myrtypetext, myromdanningtext

               ->  Seq Scan on markslag_myrikilden_temp  (cost=0.00..59601.91 rows=567241 width=1614) (actual time=0.012..335.069 rows=567241 loops=1)

 Planning Time: 0.179 ms

 Execution Time: 5629.207 ms

(7 rows)


Can it be problem related ST_Union and aggregate ?

I have tested with and with out indexes on atil, myr, myrtype,myromdanning,myrtypetext,myromdanningtext and it does not make any difference .

Lars


Thanks

Lars






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20190411/b007f605/attachment.html>


More information about the postgis-users mailing list