PostgreSQL windows 和 Linux 中的不同执行计划

Different execution plan in windows and Linux for PostgreSQL

我最近在 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,它也不会执行任何操作,因为没有任何东西可以打开。