read by other sessionとは
read by other sessionは物理読み込みしようとしたブロックが他セッションで読み込み中であった為待機した場合に発生する待機イベントです。 このイベントは10gから追加されており9iまではbuffer busy waits待機イベントとして発生していました。 この待機イベントが追加されたことで待機がI/O起因なのかpin等のロックの待機によるブロック競合であるのかの判別が可能になっています。待機イベントパラメータ
p1・・・file#。ファイル番号。v$datafileのfile#に対応。p2・・・block#。読み込み開始位置のブロック番号。
p3・・・class#。
file#とblock#から対象セグメントと参照ブロックのデータを以下のSQLより確認することができます。
file#=13、block#=654732、blocks=2であった場合の例
select owner, segment_name, segment_type, tablespace_name from dba_extents where file_id = 13 and 654732 between block_id and block_id + blocks - 1; OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME ---------------------------- ---------------------------- ---------------------------- ---------------------------- TEST B TABLE SSD1⇒TESTスキーマのBというテーブルを参照していたことがわかる
select * from B where dbms_rowid.ROWID_RELATIVE_FNO(rowid) = 13 and dbms_rowid.ROWID_BLOCK_NUMBER(rowid) between 654732 and 654733;⇒この待機イベント中に読み込んでいたブロックに格納されていたデータが表示される