Oracle 10 AWR(Automatic Workload Repository)是Oracle數據庫中用于性能調優的一個重要工具。它可以收集數據庫實例在一段時間內的性能統計信息,統計信息的數據包括系統、SQL執行情況、系統事件等,讓管理員可以從多個維度了解數據庫的性能瓶頸,并針對性地進行優化。
AWR主要提供了兩種方式來收集性能統計信息:一是使用awrrpt.sql腳本來創建AWR報告;二是使用awrload.sql腳本來將AWR數據加載到另一個實例中。下面我們分別來介紹這兩種方式。
$ sqlplus / as sysdba SQL>@?/rdbms/admin/awrrpt.sql
通過執行以上腳本可以生成AWR報告。這個AWR報告可以幫助我們了解數據庫的性能瓶頸及其原因。例如,在AWR報告中我們可以看到哪些SQL執行代價過大、哪些事件占用了大部分系統資源、哪些等待事件占用了過多的時間等等。通過這些統計信息,我們可以有針對性地進行優化。
$ sqlplus / as sysdba SQL>@?/rdbms/admin/awrload.sql
通過執行以上腳本,可以將從一個實例中收集到的AWR數據加載到另一個實例中。這個功能大多用于數據庫遷移、數據復制等場景下,以便更好地進行性能優化。
除了以上兩種常用方式外,AWR還可以通過修改數據庫參數來設置自動定期收集AWR數據的間隔時間和保留時間。例如:
SQL>alter system set statistics_level=all; SQL>alter system set control_management_pack_access=diagnostic; SQL>alter system set retention_days=7;
以上代碼告訴Oracle數據庫開啟了完整的性能統計信息收集功能,開啟了完全的診斷包訪問權限,并設置了保留時間為7天。在這7天時間內,數據庫會自動每小時收集一次AWR數據,以便管理員對數據庫的性能進行監控和優化。
總之,Oracle 10 AWR是數據庫性能調優中必不可少的一個工具。了解AWR的使用方式,對于數據庫管理員和運維人員均非常重要。