Oracleで実行したSQLの履歴を確認する方法についてです。
大規模なアプリケーションの裏側で動的にSQLを作成するようなことは多々あると思います。
そんなときわざわざデバッグしてどんなSQLが実行されているのか見るのはとても手間だと思います。
そんなときに、Oracleで実行したSQLの履歴を確認する方法があります。
方法はとしてはV$SQLを使います。
V$SQLは動的パフォーマンスビューで共有プール上のSQLカーソルの情報を表示します。
Oracleでは流れたSQLを保存しているので後から見ることができます。
パフォーマンスチューニングや障害調査等に使えそう。
SQLは次の通り。
SELECT * FROM V$SQL
これで実行したSQLの履歴を確認することができます。
特によく使うものは以下がある。
列名 | 説明 |
---|---|
SQL_TEXT | SQLテキストの最初の1000文字 |
SQL_FULLTEXT | SQL文の全テキスト |
SQL_ID | 親カーソルのSQL識別子 |
SERVICE | サービス名 |
PARSING_SCHEMA_ID | スキーマID |
PARSING_SCHEMA_NAME | スキーマ名 |
PLSQL_EXEC_TIME | PL/SQL実行時間 |
LAST_ACTIVE_TIME | 問合せプランが最後にアクティブになった時刻 |
ROWS_PROCESSED | SQLが戻す行数 |
EXECUTIONS | 実行回数 |