眾所周知,AWR在故障排查和性能優化過程中能起到舉足輕重的作用,一個常用的思路是可以結合繁忙時段和空閑時段的兩份AWR性能報告很明顯地看出數據庫性能的變動。 問:當你想收集數據庫最繁忙時段的AWR性能報告怎么辦?如何判斷數據庫在某個時段最繁忙呢? 思
眾所周知,AWR在故障排查和性能優化過程中能起到舉足輕重的作用,一個常用的思路是可以結合繁忙時段和空閑時段的兩份AWR性能報告很明顯地看出數據庫性能的變動。
問:當你想收集數據庫最繁忙時段的AWR性能報告怎么辦?如何判斷數據庫在某個時段最繁忙呢?
思路:我們可以通過DB TIME大致地判斷數據庫在某些時段是空閑還是繁忙,通過讀取相對應的SNAP_ID來生成AWR性能報告,以下是演示過程,可以根據實際的要求來稍做調整。
select * from (SELECT snap_id, (nvl(LEAD(snap_id, 1) OVER(ORDER BY snap_id), 0)) AS "UP_snapid", value, (nvl(LEAD(value, 1) OVER(ORDER BY value), 0)) AS "UP_value", (nvl(LEAD(value, 1) OVER(ORDER BY value), 0)) - value as "Result" FROM dba_hist_sysstat where stat_name = 'DB time' order by 5 desc) where "Result" > 0 運行結果如下圖:
SELECT output FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(4160719624, 1, 2335, 2336));
運行結果如下圖:
結合以上兩個簡單的步驟,就可以快速地收集數據庫繁忙時段的AWR性能報告。但這只是相鄰兩個SNAP_ID的AWR性能報告,每個SNAP_ID默認相隔1小時,朋友們還可以通擴展過這個思路去收集N天內M小時間最繁忙時段的AWR性能報告。這里就不再贅述了。
-------------------------------------------------------------------------------------------------
本文來自于我的技術博客 http://blog.csdn.net/robo23
轉載請標注源文鏈接,否則追究法律責任!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com