ENABLE_* 参数
在pg中,一些以“ENABLE_*”开头的参数,这些参数提供了影响查询优化器选择不同执行计划的方法。
如果优化器为特定查询选择的执行计划并不是最优的,可以设置这些参数强制优化器选择一个更好的执行计划来临时解决这个问题,
但一般不会在pg中改变这些参数值的默认值。
enable_seqscan:boolean
是否选择全表扫描。实际上并不能完全禁止全表扫描,但是把这个变量关闭会让优化器在存在其他方法时优先选择其他方法
enable_indexscan:boolean
是否选择索引扫描
enable_bitmapscan:boolean
是否选择位图扫描
enable_tidscan:boolean
是否选择位图扫描
enable_nestloop:boolean
多表连接时,是否选择嵌套循环连接。如果设置为“off”,执行计划只有走嵌套循环连接一条路时,优化器也只能选择走这一条路,
但是如果有其他连接方法可走,优化器会优先选择其他方法。
enable_hashjoin:boolean
多表连接时,是否选择hash连接
enable_mergejoin:boolean
多表连接时,是否选择merge连接
enable_hashagg:boolean
是否使用hash聚合
enable_sort:boolean
是否使用明确的排序,如果设置为“off”,执行计划只有排序一条路时,优化器也只能选择这条路,
但是如果有其他连接方法可走,优化器会优先选择其他方法。
完整实例:http://github.crmeb.net/u/defu
来自 “开源世界 ” ,链接:http://ym.baisou.ltd/post/617.html,如需转载,请注明出处,否则将追究法律责任。