pg中與執行計劃相關的配置(ENABLE_*)引數

yhluffy發表於2020-05-11


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”,執行計劃只有排序一條路時,優化器也只能選擇這條路,

但是如果有其他連線方法可走,優化器會優先選擇其他方法。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31536355/viewspace-2691202/,如需轉載,請註明出處,否則將追究法律責任。

相關文章