您好,登錄后才能下訂單哦!
這篇文章主要介紹SQL中pq_distribute怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
pq_distribute提示通常被用于提升數據倉庫中分區表間的連接操作性能。 pq_distribute提示允許你確定參與連接的表數據行在生產和消費并行查詢服務進程間如何分配。 pq_distribute提示接受三個參數:表名,外分配和內分配。
當執行并行查詢連接時,我們總是想著避免PARALLEL_TO_PARALLEL執行計劃。PARALLEL_TO_PARALLEL操作意味著輸入輸出數據流都是并行的,導致連接性能低下。另一方面,PARALLEL_COMBINED_WITH_PARENT操作意味著將排序和合并操作組合進一個操作。
使用pq_distribute提示前,有些Oracle DBA通常通過刪除內部表的CBO統計信息來欺騙SQL優化器,以強制采用PARALLEL_COMBINED_WITH_PARENT操作。因為SQL優化器根據這些CBO統計信息來評估候選廣播表的大小。當表大于某個閾值時,表將通過PARALLEL_TO_PARALLEL 執行模式連接,這將導致很低的性能。
pq_distribute提示可以接受六個參數組合 。記住,參數順序是外分配在前,內分配在后。
1) 、pq_distribute(tab_name, hash,hash):該組合將表數據行通過連接鍵上的哈希函數分配給消費并行查詢服務進程。完成映射后,每個查詢服務進程在一對結果分區間進行連接。當表大小相當且通過哈希或排序合并實現連接操作時,推薦使用該提示。
2) 、pq_distribute(tab_name,broadcast, none):該組合確保外表所有數據行被廣播到每個消費并行服務進程,同時,內表數據行被隨機分區。當外表比內表小很多時,推薦使用該提示。一個重要原則是,如果內表大小乘以并行服務進程數大于外表大小,則使用broadcast/none。
3) 、pq_distribute(tab_name, none,broadcast):該組合強制內表所有的數據行廣播給每個消費并行查詢服務進程,同時,外表數據行被隨機分區。當內表比外表小時,推薦使用該提示。一個重要原則是,當內表大小乘以并行查詢服務進程數小于外表大小時,推薦使用none/broadcase提示。
4)、pq_distribute(tab_name,partition, none):該組合通過內表分區來映射外表數據行,同時,內表必須按連接鍵分區。當內表分區數等于或接近并行查詢服務進程數時,推薦使用該提示。
5)、pq_distribute(tab_name, none,partition):該組合通過外表分區來映射內表數據行,同時,外表必須按分區鍵分區。當外表分區數等于或接近并行查詢服務進程數時,推薦使用該組合。
6) 、pq_distribute(tab_name, none,none):該組合中,每個并行查詢服務器在一對匹配的分區間進行連接操作,每個分區來自一張表。兩張表在連接鍵上必須分區相等。
以上是“SQL中pq_distribute怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。