Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


38.5.10 #INDEXES(インデクス情報の表示)

機能

指定された表のインデクス情報を表示します。

形式
#INDEXES 〔〔スキーマ名.〕表識別子〕 〔SHOW ALL〕;
〔〔スキーマ名.〕表識別子

インデクス情報を表示する表名を,「スキーマ名.表識別子」の形式で指定します。スキーマ名を省略した場合は,このサブコマンドを実行するHADBユーザの認可識別子が仮定されます。

スキーマ名または表識別子中に,英小文字または\がある場合の指定規則については,「1.4.3 表名の指定規則」を参照してください。

スキーマ名および表識別子を省略した場合(表名を指定しない場合)は,すべての表のインデクス情報が表示されます。ただし,表示対象の表は,HADBユーザが持っている権限の有無によって異なります。留意事項を参照してください。

〔SHOW ALL〕

このオプションを指定した場合

ディクショナリ表のSQL_INDEXES表のすべての列が表示されます。表示される内容については,マニュアルHADB システム構築・運用ガイドSQL_INDEXESの内容を参照してください。

このオプションを省略した場合

次の表に示す内容が表示されます。

表38‒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 DISPLAYOFF(検索結果を出力しない)を指定していても,#INDEXESの実行結果は出力されます。adbsqlサブコマンドの#SET DISPLAYについては,「38.5.12 #SET DISPLAY(検索結果の出力)」を参照してください。

  • #SET EXECTIME REPORTON(SQL文の実行時間を出力する)を指定していても,#INDEXESの実行時間は出力されません。adbsqlサブコマンドの#SET EXECTIME REPORTについては,「38.5.14 #SET EXECTIME REPORT(SQL文の実行時間の出力)」を参照してください。

  • #SET OPT REPORTON(インデクス情報,作業表情報,およびアクセスパス情報を表示する)を指定していても,#INDEXESの実行時に,インデクス情報,作業表情報,およびアクセスパス情報は出力されません。adbsqlサブコマンドの#SET OPT REPORTについては,「38.5.16 #SET OPT REPORT(インデクス情報,作業表情報,およびアクセスパス情報の表示)」を参照してください。

  • #SET OPT REPORTEXEC=PREPARE(SQL文を実行しない)を指定していても,#INDEXESの実行結果は出力されます。