日本エクセム マックスゲージホームに戻る

 

Oracle稼働情報を収集するならMaxGauge(マックスゲージ)

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.