【Oracle】実行中のSQLを確認するSQL

スポンサーリンク

※このページにはプロモーションが含まれています。当サイトは各種アフィリエイトプログラムから一定の収益を得ています。

SQL

SELECT
-- A.SQL_FULLTEXT -- すべての文字 CLOBなので重い
A.SQL_TEXT -- 最初の1000文字
,B.SQL_EXEC_START
,A.CPU_TIME
,A.ELAPSED_TIME
FROM
V$SQLAREA A,
V$SESSION B
WHERE A.SQL_ID = B.SQL_ID
AND B.STATUS = 'ACTIVE'
AND A.LAST_ACTIVE_TIME > TO_DATE(SYSDATE, 'YYYY/MM/DD HH:MI:SS')
ORDER BY LAST_ACTIVE_TIME DESC

使いどころ

  • 時間のかかる処理があるが、ボトルネックとなるSQLを特定できない時
  • 上記SQLを何度か実行していると、時間のかかっているSQLが分かる
  • デバッグができない、本番環境での調査に便利

スポンサーリンク

Oracle