Oracle AWR,全稱為Automatic Workload Repository,是Oracle數據庫中的一項性能分析工具。該工具通過對數據庫的性能指標數據進行收集和存儲,為數據庫管理員提供基于數據的性能分析解決方案。AWR可以收集的指標包括CPU利用率、內存使用率、物理讀、邏輯讀、SQL語句執行計劃等,并以報告的形式展現。
AWR可以幫助管理員實時分析數據庫性能,了解數據庫各種指標的變化趨勢,以及在不同時間段內的性能表現。通過AWR,管理員可以找到數據庫性能出現偏差的原因,并采取相關措施進行優化。
AWR的基本原理是收集數據庫操作的性能參數,然后導出到相應的報告中,管理員可以根據需要選擇相應的報告,對數據庫的負載情況進行分析。下面是一個使用AWR的例子:
SQL>SELECT * FROM v$database; NAME OPEN_MODE LOG_MODE CREATED RESETLOGS_CHANGE# --------- ----------- ---------- --------- ------------------- ORCL MOUNTED ARCHIVELOG 07-AUG-18 1 SQL>ALTER DATABASE OPEN; Database altered. SQL>ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; Session altered. SQL>SELECT TO_CHAR(begin_interval_time,'YYYY-MM-DD HH24:MI:SS') AS "BEGIN_DATE", 2 TO_CHAR(end_interval_time,'YYYY-MM-DD HH24:MI:SS') AS "END_DATE", 3 db_time/1000000 AS "DB_TIME", 4 time_model_statistics."SQL\*Net roundtrips to/from client"/1000000 AS "SQL_NET_ROUND_TRIPS", 5 buffer_pool_statistics."free buffer inspected" AS "FREE_BUF_INSPECTED" 6 FROM dba_hist_snapshot s, dba_hist_sys_time_model time_model_statistics, 7 dba_hist_sysstat buffer_pool_statistics 8 WHERE s.snap_id = time_model_statistics.snap_id 9 AND s.snap_id = buffer_pool_statistics.snap_id 10 AND begin_interval_time BETWEEN TO_DATE('01-JAN-15', 'DD-MON-YY') AND TO_DATE('31-JAN-15', 'DD-MON-YY');
上述代碼演示了如何使用AWR進行性能分析。在本例中,我們首先連接到Oracle數據庫,并打開數據庫。然后以更加易于分析的形式為會話設置NLS_DATE_FORMAT。接下來,我們使用SELECT語句獲取有關數據庫的指標數據,并通過WHERE子句指定數據日期范圍。此時,AWR會生成一個包含所需信息的報告,通過這個報告,我們可以了解數據庫在給定日期范圍內的性能表現。
總之,AWR是Oracle數據庫中的一個強大的性能分析工具。通過對數據庫的性能指標數據進行收集和存儲,AWR可以幫助管理員實時分析和了解數據庫的性能情況,并及時采取相關措施進行優化。
上一篇css中th是啥