Oracle 效能優化-expdp備份速度優化02

chenoracle發表於2020-02-13

Oracle 效能優化 -expdp 備份速度優化 02

 

環境:

OS:Windows Server 2012

DB:Oracle 11.2.0.1.0

伺服器:DELL R730

問題:

早上巡檢,發現其中一個系統資料庫 備份 耗時7 個多小時,之前都是 4 個小時左右,突然多了三個小時時間。

問題分析:

收集資料庫備份時間段的AWR 報告。

發現在資料庫備份期間,有一個SQL 執行了 2001 次,平均單次耗時 12 秒,爭搶了大量資源,導致備份時間延長。

耗時SQL 如下

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   : 1   AND  "T0"."FCONTROLUNITID" =   : 2 )

    AND   ROWNUM   <=   1

檢視SQL 執行計劃

select   *   from   table ( dbms_xplan.display_cursor ( '5gnuqq0kwqtaq' ));

select   *   from   table ( dbms_xplan.display_awr ( '5gnuqq0kwqtaq' ));

檢視SQL 繫結變數資訊:

select   *   from  dba_hist_sqlbind where  sql_id = '5gnuqq0kwqtaq' ;

將繫結資訊帶入SQL執行,耗時11.591秒:

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

    AND   ROWNUM   <=   1

檢視執行計劃

問題很明顯,大表沒有合適的索引,並且謂詞條件選擇性很高,適合建立索引。

select   count (*)   from  CT_JCZ_INTERFACELOG ;    ---966435

---1

select   count (*)   

   from  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

建立索引

create   index  I_CT_JCZ_INTERFACELOG_001 on  CT_JCZ_INTERFACELOG ( FNUMBER );

時間縮短到0.062秒

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

    AND   ROWNUM   <=   1

檢視執行計劃

第二天檢視備份耗時恢復正常

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

Oracle 效能優化-expdp備份速度優化02

Oracle 效能優化-expdp備份速度優化02



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2675519/,如需轉載,請註明出處,否則將追究法律責任。

相關文章