Oracle Database の set feedback on sql_id の使い方
概要
今更ですが、Oracle Database 18c から set feedback on sql_id を設定することによって SQL_ID を簡単に確認することができるようになっています。ちょっとした機能追加ですが、従来は v\$sql や v\$session などから確認していたところが不要になるので、検証等では意外と重宝しそうな気がしています。
ここではマニュアルを参考に、使い方を確認したいと思います。
使い方
使い方は簡単で、"set feedback XXX" の後ろに sql_id と追記するだけです。ちなみに、"set feedback off sql_id" とすれば「XX行が選択されました。」を抑止しつつ SQL_ID を出力してくれます。
■ デフォルト値の確認(無効化されている)
SQL> show feedback
FEEDBACK ON for 6 or more rows SQL_ID OFF
■ 設定
SQL> set feedback 6 sql_id
■ 有効化の確認
SQL> show feedback
FEEDBACK ON for 6 or more rows SQL_ID ON
この状態で SQL を実行すると、下記のように SQL_ID も同時に出力してくれます。
SQL> select emp_name from emp where emp_id=100;
EMP_NAME
----------
HOGEHOGE
SQL_ID: 7tq899p0fg6b1
また、この SQL_ID は事前定義済変数 _SQL_ID に格納されるため、例えば以下のような形で該当 SQL の関連情報を確認することができます。
SQL> set pages 999 lin 99 tab off
SQL> select * from table(dbms_xplan.display_cursor('&_sql_id'));
旧 1: select * from table(dbms_xplan.display_cursor('&_sql_id'))
新 1: select * from table(dbms_xplan.display_cursor('7tq899p0fg6b1'))
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------
SQL_ID 7tq899p0fg6b1, child number 0
-------------------------------------
select emp_name from emp where emp_id=100
Plan hash value: 2328672378
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 1005 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | IDX_EMP | 1 | | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMP_ID"=100)
19行が選択されました。
SQL_ID: brgt5k4fpz256
参考
- SQL*Plus® リリース・ノート 19c - SQL*Plusリリース18c バージョン18.1の新機能
- SQL*Plus® ユーザーズ・ガイドおよびリファレンス 19c - 12.41.23 SET FEED[BACK] {6 | n | ON | OFF | ONLY} [SQL_ID]
Author And Source
この問題について(Oracle Database の set feedback on sql_id の使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/szkyt/items/9757d41f87973151b7aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .