0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Oracle Database の set feedback on sql_id の使い方

Posted at

概要

今更ですが、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

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?