Hitachi

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


11.17.5 システム表の状態や使用量を確認する方法

システム表(実表)の状態,使用量および格納効率を確認する方法について説明します。

〈この項の構成〉

(1) システム表(実表)の状態や使用量を確認する

システム表(実表)の状態や使用量を確認する場合は,adbdbstatusコマンドで「表のサマリ情報」を出力してください。

adbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスadbdbstatus(データベースの状態解析)を参照してください。

実行するコマンドの例

ここでは,システム表(実表)のSTATUS_CHUNKS表について,サマリ情報を出力します。

adbdbstatus -d summary -c table -n "HADB"."STATUS_CHUNKS" -S M --shared-lock

コマンドを実行すると,標準出力にシステム表HADB.STATUS_CHUNKSのサマリ情報が出力されます。adbdbstatusコマンドによる出力結果の確認項目を次に示します。

再編成前のデータが残っているかどうかを確認する場合

Pending_delete_chunksの出力内容を確認してください。Pending_delete_chunksに出力されている値が1の場合,再編成前のデータ(削除仕掛中のチャンク)が残っています。

adbreorgsystemdataコマンドを再実行すると,再編成前のデータを削除できます。

システム表(実表)の使用量を確認する場合

MB_Used_pagesの出力内容を確認してください。システム表用DBエリア内に格納されているシステム表(実表)のデータが使用している領域を,メガバイト単位で確認できます。

なお,--shared-lockオプションを指定した場合は,MB_Used_pagesの出力内容に,削除仕掛中のチャンクが使用している領域は含まれません。MB_Used_pagesの出力内容に,削除仕掛中のチャンクが使用している領域を含めたい場合は,--shared-lockオプションを指定しないでください。

(2) システム表(実表)の格納効率を確認する

システム表(実表)の格納効率を確認する場合は,SQLトレース機能を使用する必要があります。

手順

  1. SQLトレース情報が出力されるようにする

    SQLトレース機能を使用して,次に示すSQLトレース情報が出力されるようにしてください。

    • アクセスパス情報

    • アクセスパスの統計情報

    SQLトレース情報の出力については,「10.11.5 SQLトレース情報を出力するための準備」を参照してください。

    メモ

    次に示すサーバ定義のオペランドにYを指定すれば,アクセスパス情報およびアクセスパスの統計情報が出力されます。

    • adb_sql_trc_outオペランド

    • adb_sql_trc_accesspathオペランド

    サーバ定義のオペランドについては,「7.2.5 SQL文に関するオペランド(set形式)」を参照してください。

    また,HADBサーバを開始している場合は,adbchgsqltrcコマンドを使用してください。adbchgsqltrcコマンドについては,マニュアルHADB コマンドリファレンスadbchgsqltrc(SQLトレース情報の出力開始・停止)を参照してください。

  2. SQL文でシステム表の行数を確認する

    格納効率を確認するシステム表に対して,DBA権限を持つHADBユーザで,行数を出力するSQL文を実行してください。SQL文を実行して出力された行数が,システム表の行数となります。

    各システム表に対応するSQL文を次に示します。

    ■STATUS_TABLES表の行数を出力するSQL文

    SELECT COUNT(COLLECT_TIME)
      FROM MASTER.STATUS_TABLES

    ■STATUS_COLUMNS表の行数を出力するSQL文

    SELECT COUNT(DATA_TYPE_CODE)
      FROM MASTER.STATUS_COLUMNS

    ■STATUS_INDEXES表の行数を出力するSQL文

    SELECT COUNT(COLLECT_TIME)
      FROM MASTER.STATUS_INDEXES

    ■STATUS_CHUNKS表の行数を出力するSQL文

    SELECT COUNT(NVL(CREATE_TIME,CURRENT_TIMESTAMP))
      FROM MASTER.STATUS_CHUNKS

    ■STATUS_SYNONYM_DICTIONARIES表の行数を出力するSQL文

    SELECT COUNT(CREATE_TIME) 
      FROM MASTER.STATUS_SYNONYM_DICTIONARIES
  3. 無効な行データの行数を確認する

    手順2.で実行したSQL文によって出力されたSQLトレース情報のアクセスパス情報から,システム表内の「無効な行データの行数」を確認してください。次の条件に該当するアクセスパス情報の「Data_deleted_rows_cnt」の値を確認してください。

    • スキーマ名が「HADB」である。

    • 表名が「手順2.で実行したSQL文に該当するシステム表」である。

    条件に該当する「Data_deleted_rows_cnt」の値が,対象のシステム表内にある無効な行データの行数となります。

  4. システム表(実表)の格納効率を求める

    手順2.と手順3.で求めた値を基に,対象のシステム表(実表)の格納効率を求めてください。計算式を次に示します。

    計算式

    [図データ]

    計算式で求めた値が0に近い場合は,システム表(実表)の格納効率が悪いと判断できます。adbreorgsystemdataコマンドで,システム表を再編成してください。