【SQL】DISK読取回数の多いSQL(I/O負荷の高い)の確認する方法


ここでは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チューニング方法まとめ