Oracle AWR(Automatic Workload Repository)主要用于收集和存儲數(shù)據(jù)庫的工作負載信息,幫助DBA進行性能診斷和調(diào)優(yōu),但它本身不能直接自動優(yōu)化配置。然而,結(jié)合ADDM(Automatic Database Diagnostic Monitor)等工具,可以分析出優(yōu)化的建議,從而間接實現(xiàn)配置的優(yōu)化。
Oracle AWR的功能
- 數(shù)據(jù)收集:AWR每隔一小時默認收集一次快照,記錄了數(shù)據(jù)庫的活動、系統(tǒng)資源使用率、I/O性能、SQL語句執(zhí)行細節(jié)等。
- 性能對比:通過比較兩個時間點的快照數(shù)據(jù),提供性能變化的對比,幫助識別性能問題的出現(xiàn)和消失。
- 等待事件分析:分析各種等待事件,揭示哪些事件對性能產(chǎn)生了最大影響。
- SQL性能分析:列出執(zhí)行頻率高、消耗資源多的SQL語句,幫助優(yōu)化關(guān)鍵查詢。
Oracle AWR與ADDM的結(jié)合使用
- ADDM的功能:ADDM是Oracle內(nèi)部的一個顧問系統(tǒng),能夠自動地完成對數(shù)據(jù)庫的一些優(yōu)化的建議,給出SQL的優(yōu)化,索引的創(chuàng)建,統(tǒng)計量的收集等建議。
- 結(jié)合使用的效果:通過AWR收集數(shù)據(jù),再利用ADDM進行分析,可以自動得出優(yōu)化建議,這些建議可以指導(dǎo)DBA進行配置的優(yōu)化。
手動優(yōu)化配置的步驟
- 生成AWR報告:使用SQL命令生成AWR報告,例如:
SELECT * FROM table(dbms_workload_repository.awr_report_html((SELECT dbid FROM v$database), (SELECT instance_number FROM v$instance), 1, 2));
。
- 分析報告:深入分析AWR報告,特別是SQL統(tǒng)計部分,找出執(zhí)行時間最長、消耗資源最多的SQL語句。
- 應(yīng)用優(yōu)化建議:根據(jù)ADDM提供的優(yōu)化建議,調(diào)整SQL語句、創(chuàng)建或優(yōu)化索引、調(diào)整數(shù)據(jù)庫參數(shù)等。
雖然Oracle AWR本身不能直接自動優(yōu)化配置,但結(jié)合ADDM工具,可以自動分析出優(yōu)化建議,從而指導(dǎo)DBA進行配置的優(yōu)化。此外,通過定期生成和分析AWR報告,DBA可以持續(xù)監(jiān)控和優(yōu)化數(shù)據(jù)庫性能。