set feedback on sql_id
Oracleの18.1から、SQL*PlusでSQL_IDを取得することができるようになっている。SQL*Plusリリース18c, バージョン18.1での変更点
SQL> set rowlimit 1 SQL> set feedback on sql_id SQL> select sysdate from dual; SYSDATE --------- 25-JUL-20 1 row selected. (rowlimit reached) SQL_ID: 7h35uxf5uhmm1
set rowlimit
上記の例では結果は必ず1行しか返ってこないが、多くの行が返ってきてしまう環境では、同じく18.1から導入された set rowlimit 1 を使えば、SQLを変えることなく、1行のみを取得することができる。特定SQLのSQL_IDのみを知りたい場合は、こちらを使えばいい。
SQL_ID
SQL_IDはSQLの文字列からハッシュ関数で生成される固定値で、Oracleのバージョンが変わらない限りは変わらない。このため、V$SQL等から情報を得るために、事前にアプリケーションで実装しているSQLのSQL_IDを一覧にしておくと役に立つ。
この場合は、テーブル定義DDLのみを流した空のDB環境で実施すると、時間がかからなくていいだろう。
ちなみに、sqlclの19.1でも、set feedback on sql_id を試してみたが、残念ながらこちらには実装されていない模様。
0 件のコメント:
コメントを投稿