談談HINT /*+parallel(t,4)*/在SQL調優中的重要做用

/*+parallel(t,4)*/在大表查詢等操做中可以起到良好的效果,
基於並行查詢要啓動並行進程、分配任務與系統資源、合併結果集,這些都是比較消耗資源,
但咱們爲可以減小執行事務的時間使用parallel HINT仍是值得的,尤爲在ODS系統中報表統計等方面更有使用意義.
通常而言主要在以下狀況使用parallel HINT
1.表的數據量很大,超過一千萬;
2.數據庫主機是多個CPU;
3.系統的當前負載較低;html

簡單的測試以下,效果很明顯的:數據庫

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'
相關文章
相關標籤/搜索