AWR Features
The AWR is used to collect performance statistics including:- Wait events used to identify performance problems.
- Time model statistics indicating the amount of DB time associated with a process from the
V$SESS_TIME_MODEL
andV$SYS_TIME_MODEL
views. - Active Session History (ASH) statistics from the
V$ACTIVE_SESSION_HISTORY
view. - Some system and session statistics from the
V$SYSSTAT
andV$SESSTAT
views. - Object usage statistics.
- Resource intensive SQL statements.
- Automatic Database Diagnostic Monitor
- SQL Tuning Advisor
- Undo Advisor
- Segment Advisor
Snapshots
By default snapshots of the relevant data are taken every hour and retained for 7 days. The default values for these settings can be altered using:The changes to the settings are reflected in theBEGIN DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings( retention => 43200, -- Minutes (= 30 Days). Current value retained if NULL. interval => 30); -- Minutes. Current value retained if NULL. END; /
DBA_HIST_WR_CONTROL
view. Typically the retention period should capture at least one complete workload cycle. If you system has monthly archive and loads a 1 month retention time would be more beneficial that the default 7 days. An interval of "0" switches off snapshot collection, which in turn stops much of the self-tuning functionality, hence this is not recommended. Automatic collection is only possible if the STATISTICS_LEVEL
parameter is set to TYPICAL
or ALL
. If the value is set to BASIC
manual snapshots can be taken, but they will be missing some statistics.Extra snapshots can be taken and existing snapshots can be removed using:
Snapshot information can be queried from theEXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot; BEGIN DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range ( low_snap_id => 22, high_snap_id => 32); END; /
DBA_HIST_SNAPSHOT
view.Baselines
A baseline is a pair of snapshots that represents a specific period of usage. Once baselines are defined they can be used to compare current performance against similar periods in the past. You may wish to create baseline to represent a period of batch processing like:The pair of snapshots associated with a baseline are retained until the baseline is explicitly deleted:BEGIN DBMS_WORKLOAD_REPOSITORY.create_baseline ( start_snap_id => 210, end_snap_id => 220, baseline_name => 'batch baseline'); END; /
Baseline information can be queried from theBEGIN DBMS_WORKLOAD_REPOSITORY.drop_baseline ( baseline_name => 'batch baseline', cascade => FALSE); -- Deletes associated snapshots if TRUE. END; /
DBA_HIST_BASELINE
view.Workload Repository Views
The following workload repository views are available:V$ACTIVE_SESSION_HISTORY
- Displays the active session history (ASH) sampled every second.V$METRIC
- Displays metric information.V$METRICNAME
- Displays the metrics associated with each metric group.V$METRIC_HISTORY
- Displays historical metrics.V$METRICGROUP
- Displays all metrics groups.DBA_HIST_ACTIVE_SESS_HISTORY
- Displays the history contents of the active session history.DBA_HIST_BASELINE
- Displays baseline information.DBA_HIST_DATABASE_INSTANCE
- Displays database environment information.DBA_HIST_SNAPSHOT
- Displays snapshot information.DBA_HIST_SQL_PLAN
- Displays SQL execution plans.DBA_HIST_WR_CONTROL
- Displays AWR settings.
Workload Repository Reports
Oracle provide two scripts to produce workload repository reports (awrrpt.sql and awrrpti.sql). They are similar in format to the statspack reports and give the option of HTML or plain text formats. The two reports give essential the same output but the awrrpti.sql allows you to select a single instance. The reports can be generated as follows:The scripts prompt you to enter the report format (html or text), the start snapshot id, the end snapshot id and the report filename. The resulting report can be opend in a browser or text editor accordingly.@$ORACLE_HOME/rdbms/admin/awrrpt.sql @$ORACLE_HOME/rdbms/admin/awrrpti.sql
Smore More Example Scripts:
Display a list of snapshots
set lines 100 pages 999
select snap_id
, snap_level
, to_char(begin_interval_time, 'dd/mm/yy hh24:mi:ss') begin
from dba_hist_snapshot
order by 1
/
Produce a report:
@?/rdbms/admin/awrrpt.sql
To see the snapshot interval and retention period
col snap_interval format a30
col retention format a30
select snap_interval
, retention
from dba_hist_wr_control
/
Change the snapshot interval:
Note. This example changes it to 30 minutes
exec dbms_workload_repository.modify_snapshot_settings (interval => 30)
Change the retention period
Note. This example changes it to two weeks (14 days)
exec dbms_workload_repository.modify_snapshot_settings (retention => 14*24*60)
Manually take a snapshot
exec dbms_workload_repository.create_snapshot
List all baselines
set lines 100
col baseline_name format a40
select baseline_id
, baseline_name
, start_snap_id
, end_snap_id
from dba_hist_baseline
order by 1
/
Create a baseline
exec dbms_workload_repository.create_baseline (
Remove a baseline
exec dbms_workload_repository.drop_baseline('
Enable/Disable automatic snapshotsNote. This job is enabled by default
exec dbms_scheduler.enable('GATHER_STATS_JOB')
and to disable...
exec dbms_scheduler.disable('GATHER_STATS_JOB')
Time model queries
System time model
set lines 100 pages 999
select stat_name
, value
from v$sys_time_model
order by value desc
/
Session time model
set lines 100 pages 999
select stat_name
, value
from v$sess_time_model
where sid = '&sid'
order by value desc
/
No comments:
Post a Comment