11gから追加されたV$SQL_HINT
11gから凄いビューが追加されましたよ、V$SQL_HINT!
SQL> desc v$sql_hint
名前 NULL? 型
----------------------------------------- -------- ----------------------
NAME VARCHAR2(64)
SQL_FEATURE VARCHAR2(64)
CLASS VARCHAR2(64)
INVERSE VARCHAR2(64)
TARGET_LEVEL NUMBER
PROPERTY NUMBER
VERSION VARCHAR2(25)
VERSION_OUTLINE VARCHAR2(25)
SQL> exec print_table('select * from v$sql_hint
where name like ''INDEX%'' and rownum <= 10 order by 1');
NAME : INDEX
SQL_FEATURE : QKSFM_INDEX
CLASS : ACCESS
INVERSE : NO_INDEX
TARGET_LEVEL : 4
PROPERTY : 304
VERSION : 8.0.0
VERSION_OUTLINE : 8.1.7
-----------------
NAME : INDEX_ASC
SQL_FEATURE : QKSFM_INDEX_ASC
CLASS : ACCESS
INVERSE : NO_INDEX
TARGET_LEVEL : 4
PROPERTY : 304
VERSION : 8.1.0
VERSION_OUTLINE : 99.99.99.98
-----------------
…
-----------------
NAME : INDEX_STATS
SQL_FEATURE : QKSFM_STATS
CLASS : TABLE_STATS
INVERSE :
TARGET_LEVEL : 1
PROPERTY : 272
VERSION : 10.1.0.3
VERSION_OUTLINE : 99.99.99.98
-----------------
PL/SQLプロシージャが正常に完了しました。
このビューを参照するとSQLで使えるヒントをバージョン毎に分かる。各カラムの正確な定義はまだドキュメントかされていないが、名前、逆ヒント、バージョン程度の情報だけでもかなり活用できそうだ。
これは10gでV$LOCK_TYPEビューが追加された時と同じく嬉しかった。
数日前、MN Lock Contentionに関するお問合せがあった場合、このビューを参照して簡単にその定義が分かった。
SQL> desc v$lock_type
名前 NULL? 型
----------------------------------------- -------- ----------------------
TYPE VARCHAR2(64)
NAME VARCHAR2(64)
ID1_TAG VARCHAR2(64)
ID2_TAG VARCHAR2(64)
IS_USER VARCHAR2(3)
DESCRIPTION VARCHAR2(4000)
SQL> exec print_table('select * from v$lock_type where TYPE = ''MN'' ');
TYPE : MN
NAME : LogMiner
ID1_TAG : session ID
ID2_TAG : 0
IS_USER : NO
DESCRIPTION : Synchronizes updates to the LogMiner dictionary
and prevents multiple instances from preparing the same LogMiner session
-----------------
PL/SQLプロシージャが正常に完了しました。
Oracleのバージョンアップでこのようなメタ―データがより多くかつ広く提供されていくことを祈る。
※この記事はEXEMエンジニア(Oracle Ace)のブログ ukja.tistory.com から抜粋して編集したものです。
※※「print_table」プロシージャは asktom.oracle.com サイトの掲載物を使用しています。
【注意】本記事の検証結果は環境、バージョン毎に異なる可能性がありますので、内容の理解と充分な検証の上自己責任で適用を実施してください。
Oracleの事なら日本エクセムホームへ | 会社情報 | 製品情報 | お問い合わせ | プライバシーポリシー
Copyright (C) EXEM JAPAN Corp. All Rights Reserved.
ホームに戻る