我最近在Linux服务器上部署了PostgreSQL数据库。存储过程之一是大约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
让我知道您是否对上述细节有任何想法,并且是否有造成速度缓慢问题的根本原因。
看来JIT在Linux上弊大于利,因此请关闭它,例如,将jit=off
放在postgresql.conf文件中。
您的Windows版本最初可能不是JIT附带的。无论如何,用于Windows的EnterpriseDB安装程序没有包含它。因此,即使参数jit
显示为on
,它也不会执行任何操作,因为没有任何打开的内容。