【OracleDB】実行中SQLのSQL_IDを確認して実行計画を取得する
スポンサーリンク
SELECT A.SQL_ID , A.SQL_TEXT , A.ELAPSED_TIME FROM V$SQL A , V$SESSION B WHERE A.SQL_ID = B.SQL_ID AND A.CHILD_NUMBER = B.SQL_CHILD_NUMBER AND B.STATUS = 'ACTIVE'
実行中のSQLのSQL_IDを確認する
OracleDatabaseで現在実行中のSQLのSQL_IDは、冒頭のSQLで確認できます。
実行中SQLの実行計画を取得する
上記方法で確認したSQL_IDを以下に当てはめることで、実行中SQLの実行計画を取得できます。
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('[確認したSQL_ID]'));
これで長時間実行しているSQLの実行計画が取得できるようになります。
取得してからの実行計画の解析が大変なものになると思いますが...。