PG並行查詢

2021-09-26 14:21:33 字數 1234 閱讀 8269

並行查詢

並行查詢

9.6版本前不支援並行查詢,sql無法利用多核cpu提公升效能,9.6版本開始支援並行查詢,但9.6的並行查詢支援範圍有限;10版本增強了並行查詢

並行查詢相關配置引數

1、max_worker_processes(integer):設定系統支援的最大後台程序數,預設值是8,如果有備庫,備庫上此引數必須大於或等於主庫上的此引數配置值,此引數調整後需要重啟資料庫生效

2、max_parallel_workers(integer):設定系統支援的並行查詢程序數,預設值為8,此引數受max_worker_processes引數限制,設定此引數值比max_worker_processes值高則無效;調整此引數時建議同時調整max_parallel_workers_per_gather引數值

3、max_parallel_workers_per_gather(integer):設定允許啟用的並行程序的程序數,預設值為2,設定為0表示禁用並行查詢,此引數受max_worker_processes引數和max_parallel_workers引數限制,因此並行查詢的實際程序數可能比預期的少,並行查詢比非並行查詢消耗更多cpu、io、記憶體資源,對生產系統有一定影響。這三個引數配置值大小關係通常為:max_worker_processes>max_parallel_workers>max_parallel_workers_per_gather

4、parallel_setup_cost(floating point):設定優化器啟動並行程序的成本,預設1000

5、parallel_tuple_cost(floating point):設定優化器通過並行程序處理一行資料的成本,預設0.1

6、min_parallel_table_scan_size(integer):設定開啟並行的條件之一,表占用空間小於此值將不會開啟並行,並行順序掃瞄場景下掃瞄的資料大小通常等於表大小,預設值8mb

8、force_parallel_mode(enum):強制開啟並行,一般作為測試目的,oltp生產環境一般不建議開啟

並行掃瞄

並行順序掃瞄、並行索引掃瞄、並行index-only掃瞄、並行bitmap heap掃瞄

並行聚合

聚合操作:count()、sum()、min()、max()等聚合函式的sql

多表關聯

多表關聯也能用並行掃瞄,例如nested loop、merge join、hash join,多表關聯場景能夠使用並行並不是指多表關聯本身使用並行,而是指多表關聯設計的表資料檢索時能夠使用並行處理

Oracle 並行查詢

並行查詢允許將乙個sql select語句劃分為多個較小的查詢,每個部分的查詢併發地執行,然後會將各個部分的結果組合起來,提供最終的答案。我們來看乙個例子 1.執行如下一串sql語句,建立乙個叫big table的表,期間會讓你錄入1的值 想要往big table表裡面插入多少行資料 我錄入的是10...

Oracle 並行查詢

所謂並行執行,是指能夠將乙個大型序列任務 任何dml,一般的ddl 物理的劃分為叫多個小的部分,這些較小的部分可以同時得到處理。何時使用並行執行 1 必須有乙個非常大的任務 2 必須有充足的資源 cpu,i o,memory alter table test a parallel 告訴oracel,...

PG常用的幾個查詢(1)

select version 檢視pg版本 select current database 檢視當前資料庫 select current user 檢視當前使用者 psql c select version 執行單條sql命令 psql f x.sql 可以把多條命令寫入檔案,用 f執行 selec...