6.1.2 データベース統計および待機イベント
Oracle Databaseは、一連の動的パフォーマンス・ビュー(V$
ビューとも呼ばれる)でパフォーマンス情報を提供します。
動的パフォーマンス・ビューには、多くのデータベース統計および待機イベントが含まれます。データベース管理者は、動的パフォーマンス・ビューを使用して、個々のSQL操作およびデータベース・セッションに対して詳細でカスタマイズされた監視を実行できます。動的パフォーマンス・ビューは、自動ワークロード・リポジトリ(AWR)およびその他のOracle Database監視ツール(SQLモニターなど)の主要な情報ソースでもあります。
次の各項では、Exadata固有の情報を含む主な動的パフォーマンス・ビューについて説明します。
- V$SYSSTAT
- V$SESSION
- V$SESSION_EVENT
- V$SYSTEM_EVENT
- V$ACTIVE_SESSION_HISTORY
- V$SQL
- V$SEGMENT_STATISTICS
V$SYSSTAT
V$SYSSTAT
には、Exadataストレージ・サーバーに関連するI/O統計など、現在のデータベース・インスタンスに関連する様々なシステム全体の統計が含まれます。
たとえば、次の問合せを使用して、Exadataストレージ・サーバーに関連するI/O統計を表示できます。
SQL> SELECT name, value
FROM v$sysstat
WHERE name like '%cell%' or name like 'physical%'
ORDER BY name;
これらの統計は、AWRレポートのグローバル・アクティビティ統計セクションまたはインスタンス・アクティビティ統計セクションにもあります。
V$SESSION
V$SESSION
には、現在アクティブなデータベース・セッションの様々な統計および待機イベントが含まれます。
たとえば、次の問合せを使用して、現在セル・イベントを待機しているセッションの数を示すサマリーを表示できます。
SQL> SELECT event, count(*)
FROM v$session
WHERE event like 'cell%'
AND wait_time = 0 -- session currently waiting
GROUP BY event
ORDER BY count(*) desc;
次の問合せは、現在セル・イベントを待機しているセッションのイベント詳細を表示します。
SQL> SELECT event, p1, p2, p3
FROM v$session
WHERE event like 'cell%'
AND wait_time = 0;
V$SESSION
のセル待機イベントの場合:
P1
列は、セルのハッシュ番号を識別します。V$CELL
ビューを使用して、セルのハッシュ番号からセルを識別できます。P2
列は、ディスクのハッシュ番号を識別します。V$ASM_DISK
ビューを使用して、ディスクのハッシュ番号からディスク名を識別できます。
V$SESSION_EVENT
V$SESSION_EVENT
は、セッション別のイベントの待機情報を示します。
たとえば、次の問合せを使用して、現在のセッションの待機イベントのサマリーを表示できます。この問合せの出力を調べることで、Exadataストレージ・サーバー・イベントの待機時間と、データベース内の他のイベントの待機時間を比較できます。
SQL> SELECT event, total_waits, time_waited_micro, time_waited_micro/decode(total_waits, 0, null, total_waits) avg_wait_time
FROM v$session_event
WHERE wait_class != 'Idle'
AND sid = userenv('SID')
ORDER BY time_waited_micro desc;
V$SYSTEM_EVENT
V$SYSTEM_EVENT
は、イベントの待機合計に関するシステム全体の情報を示します。
次の問合せを使用して、現在のデータベース・インスタンスの起動以降の待機イベントのサマリーを表示できます。
SQL> SELECT event, total_waits, time_waited_micro, time_waited_micro/decode(total_waits, 0, null, total_waits) avg_wait_time
FROM v$system_event
WHERE wait_class != 'Idle'
ORDER by time_waited_micro desc;
V$SYSTEM_EVENT
の情報は、AWRレポートの待機イベント統計セクションに含まれています。
V$ACTIVE_SESSION_HISTORY
V$ACTIVE_SESSION_HISTORY
は、システム上のアクティブ・セッションの履歴を保持します。ここでのアクティブの定義は、CPUを使用しているか、アイドル状態でない待機イベントを待機していることです。セッションごとに、V$ACTIVE_SESSION_HISTORY
には、SQL実行計画や待機イベントの詳細(Exadataストレージの相互作用に関する情報など)など、セッションの実行内容に関する多くの情報が含まれます。
たとえば、次の問合せを使用して、過去5分間のレイテンシが10ミリ秒を超えるセル・ブロックの読取りを表示できます。
SQL> SELECT sample_time, p1, p2, time_waited
FROM v$active_session_history
WHERE event = 'cell single block physical read'
AND wait_time = 0 -- currently waiting
AND sample_time > sysdate - 5/1440 -- past 5 minutes
AND time_waited > 10000
ORDER by time_waited desc;
AWRレポートのアクティブ・セッション履歴(ASH)レポート・セクションは、V$ACTIVE_SESSION_HISTORY
に基づいています。Oracle Databaseには、より詳細なアクティブ・セッション履歴(ASH)レポートも用意されています。
V$SQL
V$SQL
および関連ビュー(V$SQLAREA
、V$SQLAREA_PLAN_HASH
、V$SQLSTATS
、V$SQLSTATS_PLAN_HASH
など)には、データベース・インスタンスで処理されたSQL文の情報および統計が含まれます。
V$SQL
および関連ビューには、Exadataストレージの相互作用に関する情報を含む次の列が含まれます。
PHYSICAL_READ_BYTES
— SQLによって読み取られたバイト数PHYSICAL_READ_REQUESTS
— SQLによって発行された読取りリクエスト数PHYSICAL_WRITE_BYTES
— SQLによって書き込まれたバイト数PHYSICAL_WRITE_REQUESTS
— SQLによって発行された書込みリクエスト数IO_CELL_OFFLOAD_ELIGIBLE_BYTES
— Exadataストレージ・サーバーへの条件のオフロードの対象となるバイト数IO_CELL_OFFLOAD_RETURNED_BYTES
— スマート・スキャンによって返されたバイト数IO_INTERCONNECT_BYTES
— データベースとストレージ・サーバーの間で交換されたバイト数IO_CELL_UNCOMPRESSED_BYTES
— 読み取られた非圧縮バイト数(非圧縮バイトは解凍後のサイズ)OPTIMIZED_PHY_READ_REQUESTS
— Exadata Smart Flash Cacheで対応された読取りリクエスト数、またはストレージ索引または列キャッシュのために回避された読取りリクエスト数
次の例は、Exadataのオフロード処理のパフォーマンス・データを表示する問合せを示しています。この出力は、SALES
表をスキャンする問合せに焦点を当てています。この出力は、SALES
表のすべてのデータ(約5 GB)がオフロード処理の対象であったことを示しています。この場合、オフロード処理により、問合せで5385.75 MBのI/Oが実行されたにもかかわらず、ネットワークを介して417.65 MBのデータのみがデータベース・ホストに送信されました。
SQL> SELECT sql_text,
io_cell_offload_eligible_bytes/1024/1024 offload_eligible_mb,
io_cell_uncompressed_bytes/1024/1024 io_uncompressed_mb,
io_interconnect_bytes/1024/1024 io_interconnect_mb,
io_cell_offload_returned_bytes/1024/1024 cell_return_bytes_mb,
(physical_read_bytes + physical_write_bytes)/1024/1024 io_disk_mb
FROM v$sql
WHERE UPPER(sql_text) LIKE '%FROM SALES%';
SQL_TEXT OFFLOAD_ELIGIBLE_MB IO_UNCOMPRESSED_MB IO_INTERCONNECT_MB CELL_RETURN_BYTES_MB IO_DISK_MB
---------------------------- ------------------- ------------------ ------------------ -------------------- –---------
select count(*) from sales 5283.06 5283.06 520.34 417.65 5385.75
V$SQL
の情報は、AWRレポートのSQL統計セクションに表示されます。
V$SEGMENT_STATISTICS
V$SEGMENT_STATISTICS
には、セグメントごとの統計が含まれます。セグメント・レベルの統計は、Exadataストレージから最適化読取りを実行中の表または索引などの特定のオブジェクトの検出に使用できます。
optimized physical read
セグメント統計は、Exadata Smart Flash Cacheから読み取られたオブジェクトの読取りリクエスト数、またはストレージ索引や列キャッシュを使用して回避された読取りの読取りリクエスト数を記録します。optimized physical writes
統計は、Exadata Smart Flash Cacheに最初に送信されたオブジェクトの書込みリクエスト数を記録します。このような書込みリクエストは、後でレイジー方式でディスクに同期し、キャッシュ領域を解放できます。
次の例の問合せは、Exadataストレージからの1000を超える最適化読取りに関連付けられているオブジェクトを表示します。同様の問合せを使用して、ごく少数の最適化読取りに関連付けられているオブジェクトを特定できます。
SQL> SELECT object_name, value
FROM v$segment_statistics
WHERE statistic_name='optimized physical reads'
AND value>1000
ORDER BY value;
V$SEGMENT_STATISTICS
の情報は、AWRレポートのセグメント統計セクションに表示されます。
親トピック: Exadataの監視ツールおよび情報ソースの概要