1. 程式人生 > 其它 >AWR、ASH報告

AWR、ASH報告

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報告一致