Oracle チューニング 動的パフォーマンスビュー V$ part1

Oracle において チューニング 動的パフォーマンスビュー とは以下を示します。

  1. 待機イベント確認
  2. 実行SQL文のHASH_VALUEを確認
  3. ロック確認
  4. SQL文の特定
  5. 実行計画の取得
  6. 待機イベントが発生しているブロック特定

1. 待機イベント確認

発生している待機イベントを確認する。確認したら、手順2.のSIDに紐付ける。

  SQL> select * from v$session_wait ;

2. 実行SQL文のHASH_VALUEを確認

待機イベント発生原因SQL文の SQL_HASH_VALUE を確認する。 また、ROW_WAIT_OBJ# によりオブジェクトIDも確認可能であり、手順3.のID1に紐付ける。

  SQL> select * from v$session where SID = "<手順1 SID>";

3. ロック確認

特定したオブジェクトに対するロックの種類を TY により確認できる。

  SQL> select * from v$lock where ID1 = "<手順2 ROW_WAIT_OBJ#>" ;

4. SQL文の特定

手順2.のSQL_HASH_VALUEより以下のコマンドによりSQL文を特定可能である。 ただし、共有プールに存在しない場合には表示できない。

  SQL> select HASH_VALUE, ADDRESS, SQL_TEXT from V$SQL
         where HASH_VALUE = '<手順2 SQL_HASH_VALUE>' ;

5. 実行計画の取得

下記SQL文にて、手順4.で取得した hash_value、address をWHERE句に代入し 実行計画が取得可能。 ※ただし、共有プールに存在しない場合には表示できない。

6. 待機イベントが発生しているブロック特定

手順1.のP1⇒ファイルID、P2⇒ブロックIDをWHERE句に代入する。 待機イベントが発生しているブロック(テーブル名)を確認可能。

  SQL> select * from dba_extents where file_id =  <手順1. P1>
         and  <手順1. P2> between block_id
         and block_id + blocks -1;

ご訪問頂き有難う御座います。 当サイトを効率良く使うためにまずは FrontPage を見て下さい。 検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage