postgresql Postgres:(如何)我可以从`EXPLAIN(SETTINGS true)`中只列出查询相关的设置?

eqoofvh9  于 12个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(115)

可以使用以下命令列出非默认值

SELECT name, setting, source, sourcefile FROM pg_settings WHERE source !='default';

但是(如何)进一步缩小这些值的范围,使列表等价于EXPLAIN(..., SETTINGS true)返回的值?例如,即使track_activity_query_size被修改了,EXPLAIN (SETTINGS)也不会返回它(这是正确的)。人们可以手动过滤掉大约100个配置,但我想知道是否有一种优雅的方法来匹配EXPLAIN的输出。

lnxxn5zx

lnxxn5zx1#

尝试给定的命令以获取仅适用于查询计划和执行的配置选项的列表,并匹配EXPLAIN(options true)返回的内容:

SELECT name, setting, source, sourcefile
FROM pg_settings
WHERE source != 'default'
  AND source IN ('session', 'user');

pg_settings查询的结果中只包含在会话或用户级别更改的设置。当您为特定查询运行EXPLAIN(options true)时,会考虑这些选项。
希望它能起作用:)

相关问题