42.5.10 #INDEXES(インデクス情報の表示)
- 機能
-
指定された表のインデクス情報を表示します。
- 形式
-
#INDEXES 〔〔スキーマ名.〕表識別子〕 〔SHOW ALL〕;
- 〔〔スキーマ名.〕表識別子〕:
-
インデクス情報を表示する表名を,「スキーマ名.表識別子」の形式で指定します。スキーマ名を省略した場合は,このサブコマンドを実行するHADBユーザの認可識別子が仮定されます。
スキーマ名または表識別子中に,英小文字または\がある場合の指定規則については,「1.4.3 表名の指定規則」を参照してください。
スキーマ名および表識別子を省略した場合(表名を指定しない場合)は,すべての表のインデクス情報が表示されます。ただし,表示対象の表は,HADBユーザが持っている権限の有無によって異なります。留意事項を参照してください。
- 〔SHOW ALL〕:
-
このオプションを指定した場合
ディクショナリ表のSQL_INDEXES表のすべての列が表示されます。表示される内容については,マニュアルHADB システム構築・運用ガイドのSQL_INDEXESの内容を参照してください。
このオプションを省略した場合
次の表に示す内容が表示されます。
表42‒5 #INDEXESで表示される内容(オプションを省略した場合) 項番
列名
内容
1
TABLE_SCHEMA
スキーマ名
2
TABLE_NAME
インデクスが定義されている表の表識別子
3
INDEX_NAME
- インデクス識別子
-
主キーに対応するインデクスの場合,制約名と同じ名称のインデクス識別子が格納されます。
4
INDEX_TYPE
インデクスの種別
-
'B-TREE':B-treeインデクス
-
'RANGE':レンジインデクス
-
'TEXT':テキストインデクス
5
COLUMN_COUNT
インデクス構成列数
6
UNIQUE_TYPE
B-treeインデクスの種類(ユニークインデクスかどうか)
-
'Y':ユニークインデクス
-
'N':非ユニークインデクス
- 留意事項
-
-
#INDEXESを実行して表示されるインデクス情報の範囲は,HADBユーザが持っている権限によって異なります。表示されるインデクス情報の範囲を次に示します。
- DBA権限または監査管理権限を持っているHADBユーザの認可識別子で接続している場合
-
-
すべてのHADBユーザが定義した表のインデクス
-
スキーマ名がMASTERの表のインデクス
-
- 上記の権限を持っていないHADBユーザの認可識別子で接続している場合
-
-
自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表のインデクス
-
ほかのHADBユーザによって付与されたアクセス権限の対象となる表のインデクス
-
PUBLIC指定で許可された表のインデクス
-
スキーマ名がMASTERの表のインデクス
-
なお,#INDEXESを実行して表示されるインデクス情報の範囲は,ディクショナリ表のSQL_INDEXES表を参照できる範囲と同じです。詳細については,マニュアルHADB システム構築・運用ガイドのディクショナリ表の概要のHADBユーザが参照できるディクショナリ表の範囲を参照してください。
-
#INDEXESを実行すると,ディクショナリ表の排他が取得されます。#INDEXESを実行したあと,すぐにCOMMIT文を実行してください。COMMIT文を実行しないと,ディクショナリ表の排他が解放されません。ただし,#INDEXESを実行したあとで,adbsqlコマンドを終了する場合は,ディクショナリ表の排他は解放されるため,COMMIT文の実行は不要です。
-
存在しないスキーマ名や表識別子を指定した場合,#INDEXESの実行結果は0行になります(エラーにはなりません)。
-
#SET DISPLAYでOFF(検索結果を出力しない)を指定していても,#INDEXESの実行結果は出力されます。adbsqlサブコマンドの#SET DISPLAYについては,「42.5.12 #SET DISPLAY(検索結果の出力)」を参照してください。
-
#SET EXECTIME REPORTでON(SQL文の実行時間を出力する)を指定していても,#INDEXESの実行時間は出力されません。adbsqlサブコマンドの#SET EXECTIME REPORTについては,「42.5.14 #SET EXECTIME REPORT(SQL文の実行時間の出力)」を参照してください。
-
#SET OPT REPORTでON(インデクス情報,作業表情報,およびアクセスパス情報を表示する)を指定していても,#INDEXESの実行時に,インデクス情報,作業表情報,およびアクセスパス情報は出力されません。adbsqlサブコマンドの#SET OPT REPORTについては,「42.5.16 #SET OPT REPORT(インデクス情報,作業表情報,およびアクセスパス情報の表示)」を参照してください。
-
#SET OPT REPORTでEXEC=PREPARE(SQL文を実行しない)を指定していても,#INDEXESの実行結果は出力されます。
-