如何判断 Postgres 是否是在构建时包含用于 JIT 的 LLVM 技术的选项?

Bas*_*que 8 postgresql jit

Postgres 11 获得了基于LLVM技术执行即时编译 (JIT) 的能力

\n\n

手册指出,此功能取决于使用该选项构建的 Postgres --with-llvm

\n\n

\xe2\x9e\xa5 如何验证他们的 Postgres 版本是否包含 LLVM?

\n\n

假设安装了 LLVM\xe2\x80\xa6 在 Postgres 11 中,默认情况下禁用 JIT。在 Postgres 12 中,启用了该功能。这就提出了一个问题:

\n\n

\xe2\x9e\xa5 如何判断 JIT 当前是启用还是禁用?

\n

小智 9

LLVM 是内置的吗?

您可以运行pg_config --configure以查看您的版本是使用哪些标志和选项进行编译的。

引用文档:

打印配置 PostgreSQL 进行构建时提供给配置脚本的选项。这可以用来重现相同的配置,或者找出使用哪些选项构建了二进制包。

是否启用 JIT?

要检查 JIT 是否已启用,请检查名为 的配置变量jit

show jit ;
Run Code Online (Sandbox Code Playgroud)

JIT 可用吗?

调用系统信息函数 pg_jit_available查看本次会话是否可以使用JIT。false如果jit设置为则返回false

SELECT pg_jit_available() ; 
Run Code Online (Sandbox Code Playgroud)