談談HINT /*+parallel(t,4)*/在SQL調優中的重要作用
阿新 • • 發佈:2017-11-17
gate expand cut plan 簡單 bsp pla 數據庫 4.0
/*+parallel(t,4)*/在大表查詢等操作中能夠起到良好的效果,
基於並行查詢要啟動並行進程、分配任務與系統資源、合並結果集,這些都是比較消耗資源,
但我們為能夠減少執行事務的時間使用parallel HINT還是值得的,尤其在ODS系統中報表統計等方面更有使用意義.
一般而言主要在如下情況使用parallel HINT
1.表的數據量很大,超過一千萬;
2.數據庫主機是多個CPU;
3.系統的當前負載較低;
簡單的測試如下,效果很明顯的:
SQL> select /*+parallel(t,4)*/count(*) from t; COUNT(*) ---------- 30245882 已用時間: 00: 01: 32.04 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5411 Card=1) 1 0 SORT (AGGREGATE) 2 1 SORT* (AGGREGATE) :Q351880 00 3 2 TABLE ACCESS* (FULL) OF ‘t‘ (Cost=5411 Car :Q351880 d=2822493) 00 2 PARALLEL_TO_SERIAL SELECT /*+ PIV_SSF */ SYS_OP_MSR(COUNT(*)) F ROM (SELECT /*+ NO_EXPAND ROWID(A2) 3 PARALLEL_COMBINED_WITH_PARENT
SQL> select count(*) from t; COUNT(*) ---------- 30245882 已用時間: 00: 04: 34.02 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (FULL) OF ‘t‘
談談HINT /*+parallel(t,4)*/在SQL調優中的重要作用