SQL調優(SQL TUNING)並行查詢提示(Hints)之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):該組合中,每個並行查詢伺服器在一對匹配的分割槽間進行連線操作,每個分割槽來自一張表。兩張表在連線鍵上必須分割槽相等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2132981/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【sql調優之執行計劃】使用hint(四)Hints for JoinSQL
- 【sql調優之執行計劃】使用hint(三)Hints for Query TransformationsSQLORM
- 【sql調優之執行計劃】使用hint(二)Hints for Access PathsSQL
- 【sql調優之執行計劃】使用hint(一)Hints for Optimization Approaches and GoalsSQLAPPGo
- Parallel Query Tuning(並行化查詢優化)Parallel並行優化
- 我如何調優SQL Server查詢SQLServer
- oracle sql tuning 2--調優工具OracleSQL
- Oracle中SQL調優(SQL TUNING)之最權威獲取SQL執行計劃大全OracleSQL
- 十七、Mysql之SQL優化查詢MySql優化
- SQL使用模糊查詢like的優化SQL優化
- sql監控與調優(sql monitoring and tuning) (轉載)SQL
- SQL Server調優系列進階篇(查詢優化器的執行方式)SQLServer優化
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- SQL Server調優系列玩轉篇(如何利用查詢提示(Hint)引導語句執行)SQLServer
- SQL查詢優化SQL優化
- 用並行查詢讓SQL Server加速執行並行SQLServer
- Oracle SQL優化之sql tuning advisor(STA)OracleSQL優化
- SQL查詢優化的方法SQL優化
- SQL優化--用各種hints優化一條SQLSQL優化
- 【SQL查詢】集合查詢之INTERSECTSQL
- 優化sql查詢速度優化SQL
- 在EM中使用SQL Tuning Advisor(SQL優化建議)優化SQLSQL優化
- 有關效能調整的查詢和pub上的一個sql調優!SQL
- 【sql調優之執行計劃】使用hint(五)Hint for parallelSQLParallel
- 查詢當前正在執行的SQL語句並KILLSQL
- 【sql調優之執行計劃】sort operationsSQL
- 【sql調優之執行計劃】estimator iSQL
- 【sql調優之執行計劃】hash joinSQL
- MySQL調優之查詢優化MySql優化
- SQL Server 查詢優化功能SQLServer優化
- 優化sql提高查詢速度優化SQL
- 如何調優 Oracle SQL系列文章:查詢優化器介紹OracleSQL優化
- sql之20再看查詢SQL
- SQL調優日記:並行等待的原理和問題排查SQL並行
- Oracle SQL調優系列之SQL Monitor ReportOracleSQL
- 【sql調優之執行計劃】in相關的operationSQL
- OCP課程8:SQL之使用子查詢SQL
- sql查詢是如何執行的?SQL