default_statistics_target (integer)
為沒有通過ALTER TABLE SET STATISTICS設置列相關目標的表列設置默認統計目標。更大的值增加了需要做ANALYZE的時間,但是可能會改善規劃器的估計質量。默認值是 100。
constraint_exclusion (enum)
constraint_exclusion的允許值是on(對所有表檢查約束)、off(從不檢查約束)和partition(只對繼承的子表和UNION ALL子查詢檢查約束)。partition是默認設置。它通常被用于繼承和分區表來提高性能。當對一個特定表允許這個參數,規劃器比較查詢條件和表的CHECK約束,并且忽略那些條件違反約束的表掃描。例如:CREATE TABLE parent(key integer, ...); CREATE TABLE child1000(check (key between 1000 and 1999)) INHERITS(parent); CREATE TABLE child2000(check (key between 2000 and 2999)) INHERITS(parent); ... SELECT * FROM parent WHERE key = 2400;在啟用約束排除時,這個SELECT將完全不會掃描child1000,從而提高性能。目前,約束排除只在用來實現表分區的情況中被默認啟用。為所有表啟用它會增加額外的規劃開銷,特別是在簡單查詢上并且不會產生任何好處。如果沒有分區表時,最好是完全關閉它。、
cursor_tuple_fraction (floating point)
設置規劃器對將被檢索的一個游標的行的比例的估計。默認值是0.1。更小的值使得規劃器偏向為游標使用“快速開始”計劃,它將很快地檢索前幾行但是可能需要很長時間來獲取所有行。更大的值強調總的估計時間。最大設置為 1.0,游標將和普通查詢完全一樣地被規劃,只考慮總估計時間并且不考慮前幾行會被多快地返回。
from_collapse_limit (integer)
如果生成的FROM列表不超過這么多項,規劃器將把子查詢融合到上層查詢。較小的值可以減少規劃時間,但是可能 會生成較差的查詢計劃。默認值是 8。將這個值設置為geqo_threshold或更大,可能觸發使用 GEQO 規劃器,從而產生非最優計劃。
join_collapse_limit (integer)
如果得出的列表中不超過這么多項,那么規劃器將把顯式JOIN(除了FULL JOIN)結構重寫到 FROM項列表中。較小的值可減少規劃時間,但是可能會生成差些的查詢計劃。默認情況下,這個變量被設置成和from_collapse_limit相同,這樣適合大多數使用。把它設置為 1 可避免任何顯式JOIN的重排序。因此查詢中指定的顯式連接順序就是關系被連接的實際順序。因為查詢規劃器并不是總能 選取最優的連接順序,高級用戶可以選擇暫時把這個變量設置為 1,然后顯式地指定他們想要的連接順序。將這個值設置為geqo_threshold或更大,可能觸發使用 GEQO 規劃器,從而產生非最優計劃。
force_parallel_mode (enum)
允許為測試目的使用并行查詢,即便是并不期望在性能上得到效益。force_parallel_mode的允許值是off (只在期望改進性能時才使用并行模式)、on (只要查詢被認為是安全的,就強制使用并行查詢)以及 regress(和on相似, 但是有如下文所解釋的額外行為改變)。更具體地說,把這個值設置為on 會在任何一個對于并行查詢安全的查詢計劃頂端增加一個 Gather節點,這樣查詢會在一個并行工作者中運行。即便當一個并行工作者不可用或者不能被使用時,諸如開始一個子事務等在并行查詢環境中會被禁止的操作將會被禁止,除非規劃器相信這樣做會導致查詢失敗。 當這個選項被設置時如果出現失敗或者意料之外的結果, 查詢使用的某些函數可能需要被標記為PARALLEL UNSAFE (或者可能是PARALLEL RESTRICTED)。把這個值設置為regress具有設置成on 所有相同的效果,外加一些有助于自動回歸測試的額外的效果。一般來說,來自于一個并行工作者的消息會包括一個上下文行指出這一點,但是設置為regress會消除這一行,這樣輸出就和非并行執行完全一樣。同樣,被這個設置加到計劃上的 Gather節點在EXPLAIN輸出終會被隱藏起來,這樣產生的輸出匹配設置為off時產生的輸出。
enable_encoding_ndistinct_compute (bool)
使用列存儲引擎存儲列存表時,通過該參數設置pg_statistic_ext 規劃器統計信息中的stxndistinct指標的計算方法是否使用列存中實現的編碼計算方法,默認值為 false。