【SQL】長時間処理や遅いSQLを確認する方法

ここではORACLEデータベースで、長時間かかっている処理や遅いSQLを簡単に調査・確認する方法を紹介します。

長時間処理や遅いSQLを確認する方法

長時間の処理や遅いSQLを確認するときには、ORACLEデータベースの既存の「動的パフォーマンスビュー」を参照します。

「動的パフォーマンスビュー」の中のv$SQLというビューを参照することで、長時間の処理や遅いSQLが確認できます。

次のSQLではv$SQLで処理時間の遅い順にSQLをソートしています。これで簡単に遅いSQLを確認することが出来ます。

select
    SQL_TEXT
    ,ELAPSED_TIME --処理時間
    ,EXECUTIONS --実行回数
    ,ELAPSED_TIME/EXECUTIONS --一回あたりの平均処理時間
from
    v$SQL
order
    ELAPSED_TIME desc;

SQL本文を全て表示したい場合

先ほどのv$SQLからSELECTした内容に加えて、更にSQL本文を全て表示させたい場合は、SELECT句でSQL_FULLTEXTという項目を指定してください。

SQLは次の通りです。

select
    SQL_FULLTEXT --SQL本文を全て表示
    ,ELAPSED_TIME --処理時間
    ,EXECUTIONS --実行回数
    ,ELAPSED_TIME/EXECUTIONS --一回あたりの平均処理時間
from
    v$SQL
order
    ELAPSED_TIME desc;

最後に

最後までお読みいただきありがとうございます。

遅いSQLを特定したら、SQLが遅い原因を特定し、チューニングする必要があります。SQLが遅い原因は「SQLのレスポンスが遅い原因3つ」で詳しく解説していますのでぜひ参考にしてください。

また、SQLのチューニングについては、「SELECT文のSQLチューニング方法まとめ」で詳しく解説していますので、ぜひ参考にしてください。