AWR、ASH報告
阿新 • • 發佈:2021-08-08
AWR報告和ASH報告數值高低沒有統一規定,需要結合業務實際進行分析。
99%的效能問題源於SQL,可以結合報告優先檢視是否存在耗費特別大的SQL。
AWR:動態對負載進行取樣,1個小時收集一次,生成快照。
ASH:動態對負載進行取樣,1分鐘收集一次,生成快照。真對會話層級,作為AWR報告的補充,能定位到分鐘。
資料來源DBA_HIST_%,以下是AWR報告用到所有的表
SQL> SELECT TABLE_NAME FROM DICT WHERE TABLE_NAME LIKE 'DBA_HIST_%'; DBA_HIST_ACTIVE_SESS_HISTORY DBA_HIST_APPLY_SUMMARY DBA_HIST_ASH_SNAPSHOT DBA_HIST_ASM_BAD_DISK DBA_HIST_ASM_DISKGROUP DBA_HIST_ASM_DISKGROUP_STAT DBA_HIST_BASELINE DBA_HIST_BASELINE_DETAILS DBA_HIST_BASELINE_METADATA DBA_HIST_BASELINE_TEMPLATE DBA_HIST_BG_EVENT_SUMMARY DBA_HIST_BUFFERED_QUEUES DBA_HIST_BUFFERED_SUBSCRIBERS DBA_HIST_BUFFER_POOL_STAT DBA_HIST_CAPTURE DBA_HIST_CELL_CONFIG DBA_HIST_CELL_CONFIG_DETAIL DBA_HIST_CELL_DB DBA_HIST_CELL_DISKTYPE DBA_HIST_CELL_DISK_NAME DBA_HIST_CELL_DISK_SUMMARY DBA_HIST_CELL_GLOBAL DBA_HIST_CELL_GLOBAL_SUMMARY DBA_HIST_CELL_IOREASON DBA_HIST_CELL_IOREASON_NAME DBA_HIST_CELL_METRIC_DESC DBA_HIST_CELL_NAME DBA_HIST_CELL_OPEN_ALERTS DBA_HIST_CHANNEL_WAITS DBA_HIST_CLUSTER_INTERCON DBA_HIST_COLORED_SQL DBA_HIST_COMP_IOSTAT DBA_HIST_CON_SYSMETRIC_HIST DBA_HIST_CON_SYSMETRIC_SUMM DBA_HIST_CON_SYSSTAT DBA_HIST_CON_SYSTEM_EVENT DBA_HIST_CON_SYS_TIME_MODEL DBA_HIST_CR_BLOCK_SERVER DBA_HIST_CURRENT_BLOCK_SERVER DBA_HIST_DATABASE_INSTANCE DBA_HIST_DATAFILE DBA_HIST_DB_CACHE_ADVICE DBA_HIST_DISPATCHER DBA_HIST_DLM_MISC DBA_HIST_DYN_REMASTER_STATS DBA_HIST_ENQUEUE_STAT DBA_HIST_EVENT_HISTOGRAM DBA_HIST_EVENT_NAME DBA_HIST_FILEMETRIC_HISTORY DBA_HIST_FILESTATXS DBA_HIST_IC_CLIENT_STATS DBA_HIST_IC_DEVICE_STATS DBA_HIST_IM_SEG_STAT DBA_HIST_IM_SEG_STAT_OBJ DBA_HIST_INSTANCE_RECOVERY DBA_HIST_INST_CACHE_TRANSFER DBA_HIST_INTERCONNECT_PINGS DBA_HIST_IOSTAT_DETAIL DBA_HIST_IOSTAT_FILETYPE DBA_HIST_IOSTAT_FILETYPE_NAME DBA_HIST_IOSTAT_FUNCTION DBA_HIST_IOSTAT_FUNCTION_NAME DBA_HIST_JAVA_POOL_ADVICE DBA_HIST_LATCH DBA_HIST_LATCH_CHILDREN DBA_HIST_LATCH_MISSES_SUMMARY DBA_HIST_LATCH_NAME DBA_HIST_LATCH_PARENT DBA_HIST_LIBRARYCACHE DBA_HIST_LMS_STATS DBA_HIST_LOG DBA_HIST_MEMORY_RESIZE_OPS DBA_HIST_MEMORY_TARGET_ADVICE DBA_HIST_MEM_DYNAMIC_COMP DBA_HIST_METRIC_NAME DBA_HIST_MTTR_TARGET_ADVICE DBA_HIST_MUTEX_SLEEP DBA_HIST_MVPARAMETER DBA_HIST_OPTIMIZER_ENV DBA_HIST_OSSTAT DBA_HIST_OSSTAT_NAME DBA_HIST_PARAMETER DBA_HIST_PARAMETER_NAME DBA_HIST_PDB_INSTANCE DBA_HIST_PDB_IN_SNAP DBA_HIST_PERSISTENT_QMN_CACHE DBA_HIST_PERSISTENT_QUEUES DBA_HIST_PERSISTENT_SUBS DBA_HIST_PGASTAT DBA_HIST_PGA_TARGET_ADVICE DBA_HIST_PLAN_OPERATION_NAME DBA_HIST_PLAN_OPTION_NAME DBA_HIST_PROCESS_MEM_SUMMARY DBA_HIST_RECOVERY_PROGRESS DBA_HIST_REPLICATION_TBL_STATS DBA_HIST_REPLICATION_TXN_STATS DBA_HIST_REPORTS DBA_HIST_REPORTS_CONTROL DBA_HIST_REPORTS_DETAILS DBA_HIST_REPORTS_TIMEBANDS DBA_HIST_RESOURCE_LIMIT DBA_HIST_ROWCACHE_SUMMARY DBA_HIST_RSRC_CONSUMER_GROUP DBA_HIST_RSRC_METRIC DBA_HIST_RSRC_PDB_METRIC DBA_HIST_RSRC_PLAN DBA_HIST_RULE_SET DBA_HIST_SEG_STAT DBA_HIST_SEG_STAT_OBJ DBA_HIST_SERVICE_NAME DBA_HIST_SERVICE_STAT DBA_HIST_SERVICE_WAIT_CLASS DBA_HIST_SESSMETRIC_HISTORY DBA_HIST_SESS_SGA_STATS DBA_HIST_SESS_TIME_STATS DBA_HIST_SGA DBA_HIST_SGASTAT DBA_HIST_SGA_TARGET_ADVICE DBA_HIST_SHARED_POOL_ADVICE DBA_HIST_SHARED_SERVER_SUMMARY DBA_HIST_SNAPSHOT DBA_HIST_SNAP_ERROR DBA_HIST_SQLBIND DBA_HIST_SQLCOMMAND_NAME DBA_HIST_SQLSTAT DBA_HIST_SQLTEXT DBA_HIST_SQL_BIND_METADATA DBA_HIST_SQL_PLAN DBA_HIST_SQL_SUMMARY DBA_HIST_SQL_WORKAREA_HSTGRM DBA_HIST_STAT_NAME DBA_HIST_STREAMS_APPLY_SUM DBA_HIST_STREAMS_CAPTURE DBA_HIST_STREAMS_POOL_ADVICE DBA_HIST_SYSMETRIC_HISTORY DBA_HIST_SYSMETRIC_SUMMARY DBA_HIST_SYSSTAT DBA_HIST_SYSTEM_EVENT DBA_HIST_SYS_TIME_MODEL DBA_HIST_TABLESPACE DBA_HIST_TABLESPACE_STAT DBA_HIST_TBSPC_SPACE_USAGE DBA_HIST_TEMPFILE DBA_HIST_TEMPSTATXS DBA_HIST_THREAD DBA_HIST_TOPLEVELCALL_NAME DBA_HIST_UNDOSTAT DBA_HIST_WAITCLASSMET_HISTORY DBA_HIST_WAITSTAT DBA_HIST_WR_CONTROL DBA_HIST_WR_SETTINGS
查詢AWR版本
SELECT * FROM DBA_HIST_SNAPSHOT T WHERE T.BEGIN_INTERVAL_TIME > TO_DATE('2021-08-08 05:00', 'YYYY-MM-DD HH24:MI') AND T.BEGIN_INTERVAL_TIME < TO_DATE('2021-08-08 10:00', 'YYYY-MM-DD HH24:MI') ORDER BY T.BEGIN_INTERVAL_TIME
查詢系統事件
SELECT * FROM DBA_HIST_SYSTEM_EVENT T WHERE T.SNAP_ID= 21451 AND T.DBID = 1780993977 AND T.INSTANCE_NUMBER = 1
查詢SQL資源消耗
SELECT * FROM DBA_HIST_SQLSTAT T WHERE T.SNAP_ID = 21451 AND T.DBID = 1780993977 AND T.INSTANCE_NUMBER = 1;
查詢等待事件
SELECT * FROM DBA_HIST_SYS_TIME_MODEL T WHERE T.SNAP_ID = 21451 AND T.DBID = 1780993977 AND T.INSTANCE_NUMBER= 1
創造基線,將資料庫執行良好的時候做成基線,在資料庫異常的時候跟基線進行比較
DBMS_WORKLOAD_REPOSITORY.CRAETE_BASELINE( START_SNAP_ID => 21451, END_SNAP_ID => 2491, BASELINE_NAME => 'TEST_BL', EXPIRATION => 60);
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( START_TIME => TO_DATE('2021-08-08 10:00', 'YYYY-MM-DD HH24:MI'), END_TIME => TO_DATE('2021-08-08 12:00', 'YYYY-MM-DD HH24:MI'), BASELINE_NAME => 'TEST_BL2', EXPIRATION => 60 )
生成AWR報告,預設生成地址為當前目錄地址,SQL地址:$ORACLE_HOME/rdbms/admin/目錄下
# sqlplus / as sysdba SQL> @/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/admin/awrrpt.sql Enter value for report_type: html Location of AWR Data Specified: AWR_ROOT Enter value for num_days: 1 Enter value for begin_snap: 21447 Enter value for end_snap: 21451 Enter value for report_name: AWR_21447_21451.html
其他幾個報告生成的sql也在$ORACLE_HOME/rdbms/admin/目錄下,生成規則和AWR報告一致