Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


付録C.9 システム表の検索

SELECT文でシステム表を検索できます。システム表を検索することで,コスト情報およびチャンクの情報を確認できます。システム表の認可識別子はMASTERです。

なお,システム表を検索したら,すぐにCOMMIT文を実行してトランザクションを終了させてください。COMMIT文を実行しないと,システム表の排他が解放されません。ただし,システム表を検索したあとで,adbsqlコマンドを終了する場合,システム表の排他は解放されるため,COMMIT文の実行は不要です。

また,システム表を検索するときに,REPEATABLE READのトランザクションからシステム表を検索すると,更新前の古いシステム表の情報を参照するおそれがあります。そのため,次のどちらかの方法で検索してください。

システム表を検索するHADBユーザがDBA権限を持っているかどうかによって,検索できる情報が異なります。詳細については,「付録C.1 システム表の概要」の「(3) HADBユーザが参照できるシステム表の範囲」を参照してください。

システム表を検索するSELECT文の指定例を次に示します。

〈この項の構成〉

(1) コスト情報を収集した全実表の表名と収集日時を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "TABLE_SCHEMA","TABLE_NAME","COLLECT_TIME"
  FROM "MASTER"."STATUS_TABLES"

(2) コスト情報を収集した全インデクスのインデクス名と収集日時を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "TABLE_SCHEMA","INDEX_NAME","COLLECT_TIME"
  FROM "MASTER"."STATUS_INDEXES"

(3) 表名から表内の全チャンクの情報を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID","CHUNK_COMMENT","CHUNK_STATUS","CREATE_TIME","SWAP_TIME"
  FROM "MASTER"."STATUS_CHUNKS" WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(4) チャンクIDからチャンクの情報を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT * FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=? AND "CHUNK_ID"=?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目の入力要求にはチャンクIDを入力してください。

(5) 指定した期間に作成されたチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT * FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CREATE_TIME" BETWEEN ? AND ?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目の入力要求には期間の開始日時を,4番目の入力要求には期間の終了日時を入力してください。

上記のSELECT文では,次のチャンクが検索対象となります。

ただし,次のチャンクは検索対象外です。

(6) チャンクの作成日時から最新のチャンクIDを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS" TC
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CREATE_TIME"=(SELECT MAX("CREATE_TIME") 
        FROM "MASTER"."STATUS_CHUNKS"
          WHERE TC."TABLE_SCHEMA"="TABLE_SCHEMA"
            AND TC."TABLE_NAME"="TABLE_NAME")

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

上記のSELECT文では,次の日時のうち,最も新しい日時のチャンクが検索対象となります。

ただし,次のチャンクは検索対象外です。

(7) チャンクの作成日時から最古のチャンクIDを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS" TC
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=? 
    AND "CREATE_TIME"=(SELECT MIN("CREATE_TIME")
        FROM "MASTER"."STATUS_CHUNKS"
          WHERE TC."TABLE_SCHEMA"="TABLE_SCHEMA"
            AND TC."TABLE_NAME"="TABLE_NAME")

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

上記のSELECT文では,次の日時のうち,最も古い日時のチャンクが検索対象となります。

ただし,次のチャンクは検索対象外です。

(8) 指定した期間内に作成されたチャンクやカレントチャンクから切り替わったチャンクのチャンクIDを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND (("CREATE_TIME" BETWEEN ? AND ?)
      OR ("SWAP_TIME" BETWEEN ? AND ?))

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目の入力要求にはチャンクの作成日時の開始日時を,4番目の入力要求にはチャンクの作成日時の終了日時を,5番目の入力要求にはカレントチャンクが切り替わった日時の開始日時を,6番目の入力要求にはカレントチャンクが切り替わった日時の終了日時を入力してください。

上記のSELECT文では,次のチャンクが対象となります。

ただし,次のチャンクは検索対象外です。

(9) 指定した日時にデータが格納された可能性があるチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
     AND "CREATE_TIME" <= ?
       AND ("SWAP_TIME" IS NULL OR "SWAP_TIME" >= ?)

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目と4番目の入力要求には指定の日時を入力してください。

上記のSELECT文では,次のチャンクが対象となります。

ただし,次のチャンクは検索対象外です。

(10) 作成されたチャンクの数を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT COUNT(*) FROM MASTER.STATUS_CHUNKS
  WHERE "SCHEMA_NAME" = ? AND "TABLE_NAME" = ?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(11) 指定したコメントが含まれているチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID","CHUNK_COMMENT" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"= ? AND "TABLE_NAME"= ? AND "CHUNK_COMMENT" LIKE ?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目の入力要求にはチャンクに指定したコメントを入力してください。

(12) 削除仕掛中のチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CHUNK_STATUS"='Pending Delete'

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(13) 通常状態のチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CHUNK_STATUS"='Normal'

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(14) 待機状態のチャンクを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CHUNK_STATUS"='Wait'

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(15) チャンクがアーカイブ状態かどうかを調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT "ARCHIVE_STATUS" FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=? AND "CHUNK_ID"=?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を,3番目の入力要求にはチャンクIDを入力してください。

SELECT文の実行結果にArchiveが出力された場合は,チャンクがアーカイブ状態であることを意味しています。

(16) カレントチャンクの情報を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT * FROM "MASTER"."STATUS_CHUNKS"
  WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?
    AND "CREATE_TIME" IS NOT NULL AND "SWAP_TIME" IS NULL

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求にはスキーマ名を,2番目の入力要求には表識別子を入力してください。

(17) すべての同義語辞書に関する情報を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT * FROM "MASTER"."STATUS_SYNONYM_DICTIONARIES"
検索結果の例

[図データ]

説明のない出力項目については,「付録C.6 STATUS_SYNONYM_DICTIONARIESの内容」で説明されているSTATUS_SYNONYM_DICTIONARIESの列情報の説明を参照してください。

上記の検索結果の表示形式は,実際に出力される表示形式とは異なるところがあります。

(18) 特定の同義語辞書に関する情報を調べる場合

次に示すSELECT文でシステム表を検索してください。

指定例
SELECT * FROM "MASTER"."STATUS_SYNONYM_DICTIONARIES"
  WHERE "SYNONYM_DICTIONARY_NAME"=?

adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。同義語辞書名を入力してください。

検索結果の例

[図データ]

説明のない出力項目については,「付録C.6 STATUS_SYNONYM_DICTIONARIESの内容」で説明されているSTATUS_SYNONYM_DICTIONARIESの列情報の説明を参照してください。

上記の検索結果の表示形式は,実際に出力される表示形式とは異なるところがあります。