1. 程式人生 > 資料庫 >資料庫中級教程 第十三講 資料庫的效能報告解讀

資料庫中級教程 第十三講 資料庫的效能報告解讀

資料庫中級教程 第十三講 資料庫的效能報告解讀

資料庫的效能報告的解讀與醫生解讀患者的檢查報告是相似的。
遵循先總體,後部分的順序。

先了解CPU,記憶體,I0的工作繁忙的程度是否正常。例如CPU的消耗過大,
再進一步地瞭解,是排序問題,還是SQL的解析問題,Sql的執行問題。
如果是SQL的執行問題,則進一步分析是執行計劃的問題,還是有死鎖的問題等。

如果是記憶體的問題,進一步分析是記憶體的碎片問題,還是緩衝區的命中率不高,
導致的頻繁地換頁的問題。

如果是IO的問題,進一步分析是併發的使用者過多的問題,還是批量傳輸的資料量過大的問題。

針對如上的問題,我們可以關注AWR效能報告中的相應的指標。醫生如果懷疑患者有心臟問題,

可以要關注血壓,心率等指標,重點分析心電圖的動作電位的曲線。作為DBA,如果我們懷疑
資料庫有效能問題,要關注的可能是各種等待事件,SQL執行情況的統計資訊等。

 例如如下的指標
   parse time elapsed/hard parse elapsed time

通過這兩個指標的對比,可以看出硬解析佔整個的比例。如果很高,就說明存在大量硬解析。

DB對CPU的利用情況,這就涉及到10g新引入的一個關於時間統計的檢視 - v$sys_time_model。
簡單而言,Oracle採用了一個統一的時間模型對一些重要的時間指標進行了記錄,
具體而言,這些指標包括:
1) background elapsed time

    2) background cpu time

          3) RMAN cpu time (backup/restore)

1) DB time

    2) DB CPU

    2) connection management call elapsed time

    2) sequence load elapsed time

    2) sql execute elapsed time

    2) parse time elapsed

          3) hard parse elapsed time

                4) hard parse (sharing criteria) elapsed time

                    5) hard parse (bind mismatch) elapsed time

          3) failed parse elapsed time

                4) failed parse (out of shared memory) elapsed time

    2) PL/SQL execution elapsed time

    2) inbound PL/SQL rpc elapsed time

    2) PL/SQL compilation elapsed time

    2) Java execution elapsed time

    2) repeated bind elapsed time