ここではORACLEデータベースのSQLで、DISK読み取り回数、つまりDISK I/Oの負荷が高いSQLを調査・確認する方法を紹介します。
遅いSQLや実行回数の多いSQLを調べるには↓を参考にしてください。
>>【SQL】長時間処理や遅いSQLを確認する方法
>>【SQL】実行回数の多いSQLを確認する方法
DISK読取回数の多いSQLを確認する方法
調査には動的パフォーマンスビューのV$SQLを参照します。
select
a.SQL_TEXT
,a.DISK_READS --DISK読み取り回数
,a.ELAPSED_TIME --処理時間
,a.EXECUTIONS --実行回数
,a.ELAPSED_TIME/EXECUTIONS -- 一回あたりの平均処理時間
from
v$SQL a
order by
a.DISK_READS desc
;
SQL文を全て表示したい場合は「SQLFULLTEXT」列を取得します。
まとめ
DISK読み取り回数の多いSQLはV$SQLビューを確認します。
SQLが遅くなる原因やチューニング方法は↓で紹介していますのでぜひ参考にしてください。
>>SQLが突然遅くなる原因と対応方法
>>SELECT文のSQLチューニング方法まとめ