Различный план выполнения в windows и Linux для PostgreSQL - PullRequest
1 голос
/ 01 февраля 2020

Я недавно развернул PostgreSQL базу данных на Linux сервере. Одна из хранимых процедур занимает около 3-4 секунд, чтобы получить результат. Ранее я развернул PostgreSQL базу данных на windows сервере и тот же самый результат извлечения хранимой процедуры в течение секунды. Я проверил план выполнения в обоих случаях.
Это почти то же самое, но план выполнения Linux содержит подробности ниже.

    JIT:
  Functions: 171
  Options: Inlining true, Optimization true, Expressions true, Deforming true
  Timing: Generation 26.548 ms, Inlining 8.198 ms, Optimization 2052.958 ms, Emission 1241.730 ms, Total 3329.434 ms

Дайте мне знать, если у вас есть какие-либо идеи относительно деталей выше и у вас есть root причина проблемы с медлительностью.

1 Ответ

1 голос
/ 01 февраля 2020

Похоже, что JIT приносит вам больше вреда, чем пользы на Linux, поэтому отключите его, например, поместив jit=off в postgresql .conf файл.

Ваша версия Windows вероятно, не пришел с JIT в первую очередь. В любом случае установщик EnterpriseDB для Windows не включал его. Поэтому, хотя параметр jit отображается как on, он ничего не делает, так как там нечего включать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...