AWR レポート
AWR レポートは Oracle Database Enterprise Edition の機能で、特定の期間のパフォーマンス情報を出力します。AWR レポートは保存されたスナップショットから差分を作成し、レポートとして出力します。スナップショットの情報は主に DBA_HIST_* ビューに格納されています。
CDB で DBA_HIST_SNAPSHOT ビューを検索すると、CDB を示す単一の DBID が格納されています。
SQL> SELECT DISTINCT dbid FROM dba_hist_snapshot;
DBID
----------
1421343865
DBA_HIST_SNAPSHOT ビューは実体として WRM$_SNAPSHOT テーブルを検索していることがわかります。
SQL> SET AUTOTRACE ON
SQL> SELECT COUNT(*) FROM dba_hist_snapshot;
COUNT(*)
----------
21
実行計画
----------------------------------------------------------
Plan hash value: 2615486218
------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 4 (0)| 00:00:01 | | |
| 1 | SORT AGGREGATE | | 1 | 2 | | | | |
| 2 | PARTITION RANGE ALL| | 19 | 38 | 4 (0)| 00:00:01 | 1 | 9 |
|* 3 | TABLE ACCESS FULL | WRM$_SNAPSHOT | 19 | 38 | 4 (0)| 00:00:01 | 1 | 9 |
------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - filter("STATUS"=0)
統計
----------------------------------------------------------
72 recursive calls
0 db block gets
138 consistent gets
5 physical reads
0 redo size
579 bytes sent via SQL*Net to client
108 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
1 rows processed
PDB 単位の AWR スナップショット
PDB 単位の AWR レポートを作成する場合は、PDB の初期化パラメーター AWR_PDB_AUTOFLUSH_ENABLED を TRUE に設定します。この初期化パラメーターのデフォルト値は Oracle Database 21c までは False でしたが、Oracle Database 23c では True になっています。
SQL> ALTER SESSION SET CONTAINER=FREEPDB1;
セッションが変更されました。
SQL> SHOW PARAMETER AWR_PDB_AUTOFLUSH_ENABLED
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
awr_pdb_autoflush_enabled boolean TRUE
参考1: Oracle Database 21c のデフォルト値
参考2: Oracle Database 23c のデフォルト値
DBA_HIST_SNAPSHOTビューを検索すると、CDBのデータベースIDとPDBのデータベースID両方の情報が格納されていることがわかります。
SQL> SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
SQL> SELECT DBID FROM V$DATABASE;
DBID
----------
1421343865
SQL> ALTER SESSION SET CONTAINER=FREEPDB1;
セッションが変更されました。
SQL> SELECT DBID FROM V$DATABASE;
DBID
----------
1421343865
SQL> SELECT DISTINCT DBID FROM DBA_HIST_SNAPSHOT;
DBID
----------
1421343865
685453293
DBA_HIST_SNAPSHOTビューの実行計画を確認すると、
SQL> SET AUTOTRACE ON
SQL> SELECT COUNT(*) FROM DBA_HIST_SNAPSHOT;
COUNT(*)
----------
35
実行計画
----------------------------------------------------------
Plan hash value: 3430984285
--------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 0 (0)| 00:00:01 | | |
| 1 | SORT AGGREGATE | | 1 | 13 | | | | |
| 2 | PARTITION LIST ALL | | 1190 | 15470 | 0 (0)| 00:00:01 | 1 | 2 |
|* 3 | EXTENDED DATA LINK FULL| AWR_CDB_SNAPSHOT | 1190 | 15470 | 0 (0)| 00:00:01 | | |
--------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("CON_ID" IS NULL OR "CON_ID"=0 OR "CON_ID"=3)
filter("CON_ID" IS NULL OR "CON_ID"=0 OR "CON_ID"=3)
統計
----------------------------------------------------------
26 recursive calls
0 db block gets
33 consistent gets
0 physical reads
0 redo size
603 bytes sent via SQL*Net to client
108 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
AWR_CDB_SNAPSHOT ビューに対する実行計画 EXTENDED DATA LINK FULL を確認することができます。PDB の AWR_CDB_SNAPSHOT ビューでは PDB 内の SYSAUX 表領域と、CDB のスナップショットの両方を参照することができます。このため PDB 内から awarpt.sql スクリプトを実行すると、レポートを作成するスナップショットに CDB / PDB どちらを使うかを指定する必要があります。「awr_location に値を入力してください:」という質問に対して以下の値を指定します。
入力値 | 説明 | 備考 |
---|---|---|
AWR_PDB | PDB の AWR レポートを出力する | デフォルト |
AWR_ROOT | CDB の AWR レポートを出力する |
SQL> ALTER SESSION SET CONTAINER=FREEPDB1;
セッションが変更されました。
SQL> @?/rdbms/admin/awrrpt.sql
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
AWR reports can be generated in the following formats. Please enter the
name of the format at the prompt. Default value is 'html'.
'html' HTML format (default)
'text' Text format
'active-html' Includes Performance Hub active report
report_typeに値を入力してください: text
Type Specified: text
Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR PDB reports can be generated using data stored in this PDB or ROOT.
Please enter the desired location at the prompt. Default value is 'AWR_PDB'.
AWR_PDB - Use AWR data from PDB
AWR_ROOT - Use AWR data from ROOT
awr_locationに値を入力してください: AWR_PDB
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance Container Name
-------------- -------------- -------------- -------------- --------------
685453293 FREE 1 FREE FREEPDB1
<<略>>
Author: Noriyoshi Shinoda / Date: January 19, 2024