合 PG中的查询规划执行计划explain参数
Tags: PGPostgreSQL执行计划EXPLAINcostplan_cache_mode
PG中的执行计划:https://www.xmmup.com/pgzhongdezhixingjihuaexplain.html
查询规划
1. 规划器方法配制
这些配置参数提供了影响查询优化器选择查询规划的原始方法。如果优化器 为特定的查询选择的缺省规划并不是最优,那么我们就可以通过使用这些 配置参数强制优化器选择一个更好的规划来temporary解决这个 问题。不过,永久地关闭这些设置几乎从不是个好主意。更好的改善优化器 选择规划的方法包括调节Section 18.6.2、 更频繁运行ANALYZE、增大配置参数 default_statistics_target的值、使用 ALTER TABLE SET STATISTICS为某个字段增加收集的 统计信息。 这些配置参数影响查询优化器选择查询计划的暴力方法。如果优化器为一个特定查询选择的默认计划不是最优的,一种临时\解决方案是使用这些配置参数之一来强制优化器选择一个不同的计划。提高优化器选择的计划质量的更好的方式包括调整规划器的代价常数(见第 19.7.2 节)、手工运行ANALYZE、增加default_statistics_target配置参数的值以及使用ALTER TABLE SET STATISTICS
增加为特定列收集的统计信息量。
enable_bitmapscan
(boolean
)允许或禁止查询规划器使用位图扫描计划类型。默认值是
on
。enable_gathermerge
(boolean
)启用或者禁用查询规划器对收集归并计划类型的使用。默认值是
on
。enable_hashagg
(boolean
)允许或禁用查询规划器使用哈希聚集计划类型。默认值是
on
。enable_hashjoin
(boolean
)允许或禁止查询规划器使用哈希连接计划类型。默认值是
on
。enable_incremental_sort
(boolean
)启用或禁用查询规划器对增量排序步骤的使用。默认为
on
。enable_indexscan
(boolean
)允许或禁止查询规划器使用索引扫描计划类型。默认值是
on
。enable_indexonlyscan
(boolean
)允许或禁止查询规划器使用只用索引扫描计划类型(见第 11.9 节)。默认值是
on
。enable_material
(boolean
)允许或者禁止查询规划器使用物化。它不可能完全禁用物化,但是关闭这个变量将阻止规划器插入物化节点,除非为了保证正确性。默认值是
on
。enable_mergejoin
(boolean
)允许或禁止查询规划器使用归并连接计划类型。默认值是
on
。enable_nestloop
(boolean
)允许或禁止查询规划器使用嵌套循环连接计划。它不可能完全禁止嵌套循环连接,但是关闭这个变量将使得规划器尽可能优先使用其他方法。默认值是
on
。enable_parallel_append
(boolean
)允许或禁止查询规划器使用并行追加计划类型。默认值是
on
。enable_parallel_hash
(boolean
)允许或禁止查询规划器对并行哈希使用哈希连接计划类型。如果哈希连接计划也没有启用,这个参数没有效果。默认值是
on
。本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!