Thread: query reboot pgsql 9.5.1
Hi!!! I try to explain my problem...sorry for my english :( In pgsql 9.5.1 I have a two tables with the next structure: 1. Tabla unlogged «public._gc_cat» Columna | Tipo | Modificadores -----------------+--------------+--------------- idppicat | integer | idprodxintegrar | integer | tipo | character(1) | valor | numeric | estado | character(1) | idsll | text | idsfte | text | arama | text[] | ne_arama | integer | rama | text | rvar | text | nodec | integer | Índices: "_gc_cat_arama" btree (ne_arama) "_gc_cat_arama_gin" gin (arama) 2. Tabla unlogged «public._gc_tb» Columna | Tipo | Modificadores ----------+---------+--------------- idb2 | integer | idc1 | integer | rama | text | arama | text[] | ne_arama | integer | Índices: "_gc_tb_arama" btree (ne_arama) "_gc_tb_arama_gin" gin (arama) "_gc_tb_idb2idc1" btree (idb2, idc1) the tabla _gc_cat have 91932 records an _gc_tb have 120130 records; when i run the next query: SELECT idprodxintegrar FROM _gc_tb a LEFT join _gc_cat b on ( b.arama <@ a.arama and a.arama < @ b.arama ) psql send the next message (after three minutes aprox.): Terminado (killed) and i have to reboot my "guest server". Now i execute the same in pgsql 9.4.5 and all is fine!!! The EXPLAINs are: - pgsql 9.5.1: Nested Loop Left Join (cost=0.03..492944.81 rows=276095 width=4) -> Seq Scan on _gc_tb a (cost=0.00..3321.30 rows=120130 width=66) -> Bitmap Heap Scan on _gc_cat b (cost=0.03..4.06 rows=2 width=70) Recheck Cond: ((arama <@ a.arama) AND (a.arama <@ arama)) -> Bitmap Index Scan on _gc_cat_arama_gin (cost=0.00..0.03 rows=2 width=0) Index Cond: ((arama <@ a.arama) AND (a.arama <@ arama)) - pgsql 9.4.5: Nested Loop Left Join (cost=0.03..492944.81 rows=276095 width=4) -> Seq Scan on _gc_tb a (cost=0.00..3321.30 rows=120130 width=66) -> Bitmap Heap Scan on _gc_cat b (cost=0.03..4.06 rows=2 width=70) Recheck Cond: ((arama <@ a.arama) AND (a.arama <@ arama)) -> Bitmap Index Scan on _gc_cat_arama_gin (cost=0.00..0.03 rows=2 width=0) Index Cond: ((arama <@ a.arama) AND (a.arama <@ arama)) If i change the query as: SELECT idprodxintegrar FROM _gc_tb a LEFT join _gc_cat b on ( a.ne_arama = b.ne_arama and a.arama <@ b.arama ) In pgsql 9.5.1 finished after 450708.112 ms In pgsql 9.4.5 finished after 17996.756 ms (very fast!!!) The EXPLAINs are: - pgsql 9.5.1 Nested Loop Left Join (cost=3.49..1915550.34 rows=41825277 width=4) -> Seq Scan on _gc_tb a (cost=0.00..3321.30 rows=120130 width=70) -> Bitmap Heap Scan on _gc_cat b (cost=3.49..14.39 rows=153 width=74) Recheck Cond: (a.arama <@ arama) Filter: (a.ne_arama = ne_arama) -> Bitmap Index Scan on _gc_cat_arama_gin (cost=0.00..3.45 rows=460 width=0) Index Cond: (a.arama <@ arama) - pgsql 9.4.5 Nested Loop Left Join (cost=3.48..1868759.71 rows=42284738 width=4) -> Seq Scan on _gc_tb a (cost=0.00..3321.30 rows=120130 width=70) -> Bitmap Heap Scan on _gc_cat b (cost=3.48..14.38 rows=115 width=74) Recheck Cond: (a.arama <@ arama) Filter: (a.ne_arama = ne_arama) -> Bitmap Index Scan on _gc_cat_arama_gin (cost=0.00..3.45 rows=460 width=0) Index Cond: (a.arama <@ arama) The shared_buffers and work_mem are the same in both versions of pgsql (128MB and 4MB) I am doing this test in a laptop with the next characteristics: - hp probook with 8 Gb ram. SATA disk, AMD A8-5550M - OS Linux (fedora 23) - lxc containers I am sharing the dumper's database are in the next links: http://sipre.inegi.org.mx/pgsql/dump_pgsql_9_4_5.dump http://sipre.inegi.org.mx/pgsql/dump_pgsql_9_5_1.dump similar post is found in: http://www.postgresql.org/message-id/CALrs2KPMowV6juLdOkMRq_P3MA5VkUmhdM4Q1OD0vCf2qimFfA@mail.gmail. com thanks in advance!