連載
続・バッファキャッシュ関連の待機イベントとパフォーマンス統計情報を読み解く:しばちょう先生の試して納得! DBAへの道(改)(6)(2/4 ページ)
データベース技術や知識は、座学だけでなく「実際に手を動かして、実際に試して」理解を深めよう──。日本オラクルのデータベーススペシャリストが「新人をDBAに育てる際に使用する課題」をベースに、DBAがすぐ実践できる即効テクニックを紹介。今回は「バッファキャッシュ関連の待機イベントとパフォーマンス統計情報の読み解き方」について、前回に引き続き解説します。
2.バッファキャッシュ上にキャッシュされているオブジェクトとそのサイズの確認
「SYS」ユーザーで「V$BH」ビューにアクセスして確認します。
$ sqlplus / as sysdba SQL> col OWNER for a8 col OBJECT_NAME for a16 select OWNER, OBJECT_NAME, count(*) "BUFFERS", count(*)*8/1024 "MB" from V$BH, DBA_OBJECTS where OBJD = DATA_OBJECT_ID and OWNER = 'TRY' and V$BH.STATUS != 'free' group by OWNER, rollup(OBJECT_NAME) order by 4 ; OWNER OBJECT_NAME BUFFERS MB -------- ---------------- ---------- ---------- TRY 897 7.0078125 TRY TAB39_SMALL 897 7.0078125
バッファキャッシュ上にキャッシュされているオブジェクトとサイズを確認するためには、V$BHビューへアクセスします。上記の回答例からも確認できるように、バッファキャッシュ上には約7MBの、表TAB39_SMALLのデータブロックがキャッシュされていますね。クエリを実行する前にバッファキャッシュを空にしているので、このブロックは演習3のクエリを実行することでキャッシュされたことに間違いはないでしょう。
ということで、ここまでを整理させていただくと、バッファキャッシュのサイズに比べて非常に小さな表TAB39_SMALLを、Table Full Scanした際に、ディスクからバッファキャッシュ上へマルチブロックで読み込んだことを示す待機イベントdb file scattered readが発生します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】 - 障害発生! 問題切り分けはスピード勝負
Oracleデータベースの運用管理者は、突発的に直面するパフォーマンス障害にどうやって対処したらよいか。本連載は、非常に複雑なOracleのアーキテクチャに頭を悩ます管理者に向け、短時間で問題を切り分け、対処法を見つけるノウハウを紹介する。対象とするバージョンはOracle8から9iまでを基本とし、10gの情報は随時加えていく。(編集局) - パフォーマンス向上の最短コースを知る
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) - SQL実践講座
SQLは、データを操作するために非常に簡単な構文で構成されているように見えます。ところが実際に使い込んでいくと、一見簡単に取得できるように見えるデータが取得できない場面にぶち当たることもあります。こういった場面のために、SQLの効率的な使い方をエッセンスにしてお伝えします。