Postgres 9.6. Большое planning time в простом запросе

From: Nik Ludmirsky <ludmirsky(at)gmail(dot)com>
To: pgsql-ru-general(at)lists(dot)postgresql(dot)org
Subject: Postgres 9.6. Большое planning time в простом запросе
Date: 2018-03-12 16:11:28
Message-ID: CALL=AMW-Vw2jw18OO19y5H5znOfQMtbTiuVtPpuqHq1i1_B2dw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Коллеги,

после обновления до 9.6 стали медленно исполнятся некоторые запросы.
Попытался проанализировать и вижу, что в некоторых случаях на достаточно
простых запросах долго строится execution plan.

Для примера вот запрос:
SELECT
T1.*
FROM _Reference54 T1
LEFT OUTER JOIN _InfoRg4210 T2
ON T1._Fld9680RRef = T2._Fld4213RRef
WHERE ((T1._Fld5384 = 0)) AND ((T1._IDRRef =
'\202\260\360yYn\310\234\021\346\376U\244\354w\227'::bytea))

EXPLAIN ANALYSE показывает "Planning time: 1425.054 ms" при том, что
"Execution
time: 126.907 ms".

В чем проблема? Как можно ускорить планирование?

Nested Loop Left Join (cost=0.98..13291.41 rows=5619 width=237) (actual
time=40.649..126.838 rows=1 loops=1)
-> Index Scan using _reference54hpk on _reference54 t1 (cost=0.43..2.65
rows=1 width=237) (actual time=0.066..0.068 rows=1 loops=1)
Index Cond: ((_fld5384 = '0'::numeric) AND (_idrref =
'\202\260\360yYn\310\234\021\346\376U\244\354w\227'::bytea))
-> Index Only Scan using _inforg4210_bydims_rrrrr on _inforg4210 t2
(cost=0.55..13288.75 rows=1 width=19) (actual time=40.578..126.764 rows=1
loops=1)
Index Cond: (_fld4213rref = t1._fld9680rref)
Heap Fetches: 0"
Planning time: 1425.054 ms
Execution time: 126.907 ms

----
С уважением,
Людмирский Николай

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Andrey Lizenko 2018-03-12 16:15:29 Re: Postgres 9.6. Большое planning time в простом запросе
Previous Message Oleg Y. Danilkiff 2018-01-16 16:05:25 Re: server process was terminated by exception 0xC00000FD