ADMINTABINFO 管理ビューおよび ADMIN_GET_TAB_INFO 表関数 - 表のサイズおよび状態に関する情報の検索

ADMINTABINFO 管理ビューおよび ADMIN_GET_TAB_INFO 表関数は、 現在カタログ・ビューで使用できない表のサイズおよび状態に関する情報を検索するメソッドを提供します。

管理ビューまたは表関数のどちらを使用しているかによって、以下のいずれかのセクションを参照してください。

ADMINTABINFO 管理ビュー

ADMINTABINFO 管理ビューは、表、マテリアライズ照会表 (MQT)、および階層表だけのサイズおよび状態に関する情報を戻します。 これらの表タイプは SYSCAT.TABLES カタログ・ビューで、T (表)、S (マテリアライズ照会表)、および H (階層表) として報告されます。 情報は表のデータ・パーティション・レベルとデータベース・パーティション・レベルの両方のものが戻されます。

Db2® pureScale® 環境では、すべてのメンバーが単一のデータ物理区画上で作動するため、表について報告される値はすべてのメンバー上で同じです。これは、 各メンバーが別々の データ物理区画で作動し、異なる値を報告するパーティション・データベース環境とは異なる点です。 すべてのメンバーの値が常に同じであるため、ADMINTABINFO ビューおよび ADMIN_GET_TAB_INFO 表関数は、Db2 pureScale インスタンスで実行されるときに、各表に単一行のみを戻します。

スキーマは SYSIBMADM です。

戻すことができる情報の全リストについては、ADMINTABINFO 管理ビューおよび ADMIN_GET_TAB_INFO によって戻される情報の表を参照してください。

許可

以下のいずれかの権限が必要です。
  • ADMINTABINFO 管理ビューに対する SELECT 特権
  • ADMINTABINFO 管理ビューに対する CONTROL 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

制限のないデータベースでは、このビューが自動的に作成されると、SELECT 特権が PUBLIC に付与されます。

例 1: すべての表のサイズおよび状態に関する情報を検索します。
SELECT * FROM SYSIBMADM.ADMINTABINFO
例 2: データ密度の低い多数の表が使用する物理スペースの量を判別します。
SELECT TABSCHEMA, TABNAME, SUM(DATA_OBJECT_P_SIZE), 
   SUM(INDEX_OBJECT_P_SIZE), SUM(LONG_OBJECT_P_SIZE), 
   SUM(LOB_OBJECT_P_SIZE), SUM(XML_OBJECT_P_SIZE)
   FROM SYSIBMADM.ADMINTABINFO GROUP BY TABSCHEMA, TABNAME
例 3: ラージ RID の使用に適してはいるものの、現在使用可能になっていない表を識別します。
SELECT TABSCHEMA, TABNAME FROM SYSIBMADM.ADMINTABINFO 
   WHERE LARGE_RIDS = 'P'
例 4: 表 T1 について収集された統計情報の現在のタイプを調べます。
SELECT SUBSTR(TABSCHEMA, 1, 10) AS TBSCHEMA, SUBSTR(TABNAME, 1, 10) 
   AS TBNAME, STATSTYPE FROM SYSIBMADM.ADMINTABINFO WHERE TABNAME = 'T1';

TBSCHEMA   TBNAME     STATSTYPE
---------- ---------- ---------
Db2USER1   T1         U        

  1 record(s) selected.

ADMIN_GET_TAB_INFO 表関数

ADMIN_GET_TAB_INFO 表関数は ADMINTABINFO 管理ビュー と同じ情報を戻しますが、この関数ではスキーマおよび表名を指定することが可能です。

戻すことができる情報の全リストについては、ADMINTABINFO 管理ビューおよび ADMIN_GET_TAB_INFO によって戻される情報の表を参照してください。

許可

ADMIN_GET_TAB_INFO 表関数に対する EXECUTE 特権。

デフォルトの PUBLIC 特権

制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。

構文

構文図を読む構文図をスキップするADMIN_GET_TAB_INFO(tabschema ,tabname)

スキーマは SYSPROC です。

ルーチン・パラメーター

tabschema
スキーマ名を指定する、タイプ VARCHAR(128) の入力引数。
tabname
表、マテリアライズ照会表、または階層表それぞれの名前を指定する、タイプ VARCHAR(128) の入力引数。

戻される情報

表 1. ADMINTABINFO 管理ビューおよび ADMIN_GET_TAB_INFO によって戻される情報
列名 データ・タイプ 説明
TABSCHEMA VARCHAR(128) table_schema - 表スキーマ名モニター・エレメント
TABNAME VARCHAR(128) table_name - 表名モニター・エレメント
TABTYPE CHAR(1) 表タイプ:
  • 「H」= 階層表
  • 「S」= マテリアライズ照会表
  • 「T」= 表
DBPARTITIONNUM SMALLINT dbpartitionnum - データベース・パーティション番号モニター・エレメント
DATA_PARTITION_ID INTEGER data_partition_id - データ・パーティション ID モニター・エレメント
AVAILABLE CHAR(1) 表の状態:
  • 「N」= 表は使用不可。 表を使用できない場合、サイズおよび状態に関係する他の出力列はすべて NULL になります。
  • 「Y」= 表は使用可能。
注: リカバリー不能ロードでのロールフォワードを行うと、表の状態が使用不可になります。
DATA_OBJECT_L_SIZE BIGINT データ・オブジェクトの論理サイズ。 表に対して論理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 論理サイズとは、表が認識するスペースの量のことです。 このサイズは表に対して物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。 マルチディメンション・クラスタリング (MDC) 表および挿入時クラスタリング (ITC) 表の場合、 このサイズにはブロック・マップ・オブジェクトの論理サイズが含まれます。 戻されるサイズは、表に対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成されるオブジェクトの場合は Extent Map Page (EMP) エクステントの見積もりを考慮に入れます。 このサイズは、基本表のみの論理サイズを表します。 LOB データ、長形式データ、索引、および XML オブジェクトが消費するスペースは別の列で報告されます。
DATA_OBJECT_P_SIZE BIGINT データ・オブジェクトの物理サイズ (キロバイト単位で報告される)。

行オーガナイズ表の場合、データ・オブジェクトの物理サイズは、表に物理的に割り振られているディスク・スペースの量です。 MDC 表および ITC 表の場合、このサイズにはブロック・マップ・オブジェクトのサイズが含まれます。 戻されるサイズは、表に割り振られているすべてのエクステントが考慮され、DMS 表スペースに作成したオブジェクトの EMP エクステントが含まれたものです。 このサイズは、基本表のみの物理サイズを表します。 LOB データ、long データ、索引、および XML オブジェクトによって消費されているスペースは、他の列で報告されます。

カラム・オーガナイズ表の場合、データ・オブジェクトの物理サイズは、表のメタデータのみに物理的に割り振られているディスク・スペースの量です。それは比較的小さなものです。 カラム・オーガナイズ表のユーザー・データは、カラム・オーガナイズ・データ・オブジェクトに保管され、それ物理サイズは COL_OBJECT_P_SIZE によって報告されます。

INDEX_OBJECT_L_SIZE BIGINT 索引オブジェクトの論理サイズ。 表で定義される索引に対して論理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 論理サイズとは、表が認識するスペースの量のことです。 このサイズは表の索引データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。 戻されるサイズは、索引に対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の場合は EMP エクステントの見積もりを考慮に入れます。

パーティション表のパーティション索引の場合、これは DATA_PARTITION_ID によって識別されるデータ・パーティションの索引パーティションを含む索引オブジェクトの論理サイズです。 この値には、パーティション表の非パーティション索引は考慮に入れられません。 パーティション索引と非パーティション索引の両方の情報については、ADMIN_GET_INDEX_INFO 関数を使用できます。

INDEX_OBJECT_P_SIZE BIGINT 索引オブジェクトの物理サイズ。 表で定義される索引に対して物理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 戻されるサイズは、索引に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の EMP エクステントが含まれます。

パーティション表のパーティション索引の場合、これは DATA_PARTITION_ID によって識別されるデータ・パーティションの索引パーティションを含む索引オブジェクトの物理サイズです。 この値には、パーティション表の非パーティション索引は考慮に入れられません。 パーティション索引と非パーティション索引の両方の情報については、ADMIN_GET_INDEX_INFO 関数を使用できます。

LONG_OBJECT_L_SIZE BIGINT 長形式オブジェクトの論理サイズ。 表の長形式フィールド・データに対して論理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 論理サイズとは、表が認識するスペースの量のことです。 このサイズは表の長形式フィールド・データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。 戻されるサイズは、長形式フィールド・データに対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される長形式フィールド・データの場合は EMP エクステントの見積もりを考慮に入れます。
LONG_OBJECT_P_SIZE BIGINT 長形式オブジェクトの物理サイズ。 表の長形式フィールド・データに対して物理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 戻されるサイズは、長形式フィールド・データに割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される長形式フィールド・データの EMP エクステントが含まれます。
LOB_OBJECT_L_SIZE BIGINT LOB オブジェクトの論理サイズ。 表の LOB データに対して論理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 論理サイズとは、表が認識するスペースの量のことです。 このサイズは表の LOB データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。 サイズには LOB 割り振りオブジェクトに対して論理的に割り振られるスペースが含まれます。 戻されるサイズは、LOB データに対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される LOB データの場合は EMP エクステントの見積もりを考慮に入れます。
LOB_OBJECT_P_SIZE BIGINT LOB オブジェクトの物理サイズ。 表の LOB データに対して物理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 サイズには LOB 割り振りオブジェクトに対して割り振られるスペースが含まれます。 戻されるサイズは、LOB データに割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される LOB データの EMP エクステントが含まれます。
XML_OBJECT_L_SIZE BIGINT XML オブジェクトの論理サイズ。 表の XML データに対して論理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 論理サイズとは、表が認識するスペースの量のことです。 このサイズは表の XML データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。 戻されるサイズは、XML データに対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される XML データの場合は EMP エクステントの見積もりを考慮に入れます。
XML_OBJECT_P_SIZE BIGINT XML オブジェクトの物理サイズ。 表の XML データに対して物理的に割り振られるディスク・スペースの量 (KB 単位で報告)。 戻されるサイズは、XML データに割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される XML データの EMP エクステントが含まれます。
INDEX_TYPE SMALLINT 現在表で使用されている索引のタイプを示します。 タイプ 2 索引が使用されているときは 2 を戻します。
REORG_PENDING CHAR(1) 「Y」は、REORG 推奨の変更がすでに表に適用されており、クラシック (オフライン) REORG が必要であることを示しています。 それ以外の場合は「N」が戻されます。
INPLACE_REORG_STATUS VARCHAR(10) 表に対する表のインプレース再編成の現在の状況。 状況値は、以下のいずれかになります。
  • ABORTED (PAUSED 状態にあるが、RESUME は不可。STOP は必須)
  • EXECUTING
  • NULL (表に対して INPLACE の REORG が実行されていない場合)
  • PAUSED
LOAD_STATUS VARCHAR(12) 表に対するロード操作の現在の状況。 状況値は、以下のいずれかになります。
  • IN_PROGRESS
  • NULL (表でロードが進行しておらず、表がロード・ペンディング状態になっていない場合)
  • PENDING
READ_ACCESS_ONLY CHAR(1) 表が「読み取りアクセス専用」の状態になっていれば「Y」、そうでなければ「N」になります。 「N」の値を、表が完全にアクセス可能であるという意味に解釈するべきではありません。 ロードが進行中またはペンディング状態の場合、「Y」の値は表データが読み取りアクセス可能であることを意味し、「N」の値は表がアクセス不能であることを意味します。 同様に、表の状況が SET INTEGRITY ペンディングである場合 (SYSCAT.TABLES STATUS 列を参照)、「N」の値は表がアクセス不能であることを意味します。
NO_LOAD_RESTART CHAR(1) 「Y」の値は、表が部分的にロードされている状態になっていることを示します。 この場合、ロードを再始動することができません。 この状態になっていなければ「N」の値が戻されます。
NUM_REORG_REC_ALTERS SMALLINT 最後に再編成が行われてからこの表に対して実行された REORG 推奨の変更操作 (例えば直後に再編成を必要とする変更操作) の回数。
INDEXES_REQUIRE_REBUILD CHAR(1) 非パーティション表において、 表に定義されている索引のいずれかが再ビルドを必要とする場合は「Y」、必要としない場合は「N」。 パーティション表において、DATA_PARTITION_ID によって識別されるデータ・パーティションの索引パーティションのいずれかが再ビルドを必要とする場合は「Y」、必要としない場合は「N」。
LARGE_RIDS CHAR(1) 表でラージ行 ID (RID。4 バイトのページ番号と 2 バイトのスロット番号) が使用されているかどうかを示す標識。 値「Y」は表でラージ RID が使用されていることを示し、「N」はラージ RID が使用されていないことを示します。 以下の両方の基準が満たされている場合は、値「P」(保留) が返されます。
  • 表がラージ RID をサポートしている、すなわち表が LARGE 表スペースにある。
  • 表の索引の 1 つ以上がまだ再編成または再作成されていないため、依然として 4 バイトの RID が表で使用されている。表または索引を変換する必要があります。
この列は、カラム・オーガナイズ表については NULL 値を返します。これらの表には、RID の概念は適用されないためです。
LARGE_SLOTS CHAR(1) 表でラージ・スロット (1 ページにつき 255 を超える行が可能) が使用されているかどうかを示す標識。 値「Y」は表でラージ・スロットが使用されていることを示し、「N」はラージ・スロットが使用されていないことを示します。 以下の基準が両方とも満たされている場合は、値「P」(保留) が返されます。
  • 表がラージ・スロットをサポートしている、すなわち表が LARGE 表スペースにある。
  • 表に対してまだオフライン表再編成または表切り捨て操作が実行されていないため、依然として 1 ページにつき最大 255 行が使用されている。
この列は、カラム・オーガナイズ表については NULL 値を返します。これらの表には、スロットの概念は適用されないためです。
DICTIONARY_SIZE BIGINT 表ディクショナリーのサイズ (バイト)。 表に行コンプレッション・ディクショナリーが存在する場合に行の圧縮で使用されます。 履歴ディクショナリーが存在する場合、この値は現在のディクショナリー・サイズと履歴ディクショナリー・サイズの合計になります。
BLOCKS_PENDING_CLEANUP BIGINT blocks_pending_cleanup - クリーンアップ保留中のロールアウト済みブロック・モニター・エレメント
STATSTYPE CHAR(1)
  • 「F」= 表または索引のスキャンを行わずにシステムが作り上げた統計。 これらの統計はメモリーに保管され、システム・カタログに保管されているものとは異なります。 これは一時状態であり、最終的に完全な統計がデータベース・システムによって収集され、システム・カタログに保管されます。
  • 「A」= システムが非同期に収集した統計。統計はデータベース・システムによりバックグラウンド・プロセスで自動的に収集され、システム・カタログに保管されました。
  • 「S」= システムが同期に収集した統計。統計はデータベース・システムによって SQL ステートメントのコンパイル中に自動的に収集されました。これらの統計はメモリーに保管され、システム・カタログに保管されているものとは異なります。 これは一時状態であり、最終的にデータベース・システムが統計をシステム・カタログに保管します。
  • 「U」= ユーザーが収集した統計。統計の収集は、RUNSTATS、CREATE INDEX、LOAD、REDISTRIBUTE などのユーティリティーを使用するか、システム・カタログ統計を手動で更新することによって、ユーザーが開始しました。
  • NULL = 不明なタイプ
XML_RECORD_TYPE SMALLINT 現在表で使用されている XML レコードのタイプを示します。
  • タイプ 1 (シングル・ノード) XML レコード・フォーマットが使用されている場合には 1。
  • タイプ 2 (マルチノード) XML レコード・フォーマットが使用されている場合には 2。
  • 表に XML 列がない場合には NULL。
RECLAIMABLE_SPACE BIGINT

DMS 表スペースの MDC 表または ITC 表に対して、RECLAIM EXTENTS オプションを指定した REORG TABLE コマンドを実行することで再利用可能なディスク・スペース量を示します。カラム・オーガナイズ表の場合、この値は、RUNSTATS コマンドが最後に実行されたときに検出されたフリー・スペース量を表します。ディスク・スペースは、K バイト (KB) で報告されます。その他の表の場合、この値はゼロです。

XML_DICTIONARY_SIZE BIGINT XML ストレージ・オブジェクトにデータ・コンプレッション・ディクショナリーが存在する場合、データ圧縮に使用される XML ディクショナリーのサイズ (バイト単位)。表に XML 列がない場合、またはコンプレッション・ディクショナリーが作成されていない場合、値は 0 になります。
AMT_STATUS VARCHAR(12) 表に対する ADMIN_MOVE_TABLE ストアード・プロシージャー呼び出しの現在の状況。表に進行中の動きがない場合は、値 'IN_PROGRESS' または NULL 値が戻されます。
SPARSE_BLOCKS BIGINT 挿入時クラスタリング (ITC) 表の場合、このフィールドには表内のデータ密度の低いブロックの数が示されます。 REORG TABLE コマンドが RECLAIM EXTENTS オプションを指定して呼び出される場合、このブロック・セットは統合されます。
STATS_ROWS_MODIFIED BIGINT stats_rows_modified - 最終 RUNSTATS 以降に変更された行数
RTS_ROWS_MODIFIED BIGINT rts_rows_modified - 最終リアルタイム統計以降に変更された行数
STATS_DBPARTITION CHAR(3) stats_dbpartition - 自動統計収集インディケーター
COL_OBJECT_L_SIZE BIGINT col_object_l_size - カラム・オーガナイズ・データ・オブジェクトの論理サイズ
COL_OBJECT_P_SIZE BIGINT col_object_p_size - カラム・オーガナイズ・データ・オブジェクトの物理サイズ

使用上の注意

  • tabschematabname の両方が指定される場合、その特定の表の情報のみが戻されます。
  • tabschema が指定され、tabname が NULL または空ストリング (") の場合、指定したスキーマのすべての表に関する情報が戻されます。
  • tabschema が NULL または空ストリング (") で、tabname が指定される場合、エラーは戻されます。 特定の表の情報を取り出すには、その表がスキーマと表名の両方によって識別されることが必要です。
  • tabschematabname の両方が NULL または空ストリング (") の場合、すべての表の情報が戻されます。
  • tabschema または tabname が存在しないか、あるいは tabname が表名 (タイプ T)、マテリアライズ照会表名 (タイプ S)、または階層表名 (タイプ H) と一致しない場合、空の結果セットが戻されます。
  • ADMIN_GET_TAB_INFO 表関数が指定の表のデータを検索するとき、この表関数は SYSTABLES の対応する行に対する共有ロックを獲得します。 これは、戻されるデータの整合性を確保するための動作です (例えば、情報の検索中に、検索されている表がドロップされないようにするなど)。 ロックが保持されるのは、表関数の呼び出し期間中ではなく、表のサイズおよび状態に関する情報を検索する間だけです。
  • SMS 表スペースの表の物理サイズが報告されますが、このサイズは論理サイズと同じです。
  • 表で INPLACE の REORG がアクティブになっていると、データ・オブジェクトの物理サイズ (DATA_OBJECT_P_SIZE) は計算されません。 論理サイズだけが戻されます。 INPLACE の REORG が表でアクティブになっているかどうかは、INPLACE_REORG_STATUS 出力の列を見ると分かります。

例 1: 表 DBUSER1.EMPLOYEE のサイズおよび状態に関する情報を検索します。
SELECT * FROM TABLE (SYSPROC.ADMIN_GET_TAB_INFO('DBUSER1', 'EMPLOYEE')) 
   AS T
例 2: 非パーティション表 (DBUSER1.EMPLOYEE) が存在し、関連オブジェクト (例えば索引や LOB など) がすべて 1 つの表スペースに保管されていると仮定します。 表が表スペース内のどのくらいの物理スペースを使用しているかを計算します。

SELECT (data_object_p_size + index_object_p_size + long_object_p_size + 
   lob_object_p_size + xml_object_p_size + col_object_p_size) as total_p_size 
   FROM TABLE( SYSPROC.ADMIN_GET_TAB_INFO( 'DBUSER1', 'EMPLOYEE' )) AS T
表が別の表スペースに移動されるときにどのくらいのスペースが必要になるかを計算します。 ここでは、新規の表スペースには元の表スペースと同じページ・サイズおよびエクステント・サイズがあるとします。
SELECT (data_object_l_size + index_object_l_size + long_object_l_size + 
   lob_object_l_size + xml_object_l_size + col_object_l_size) as total_l_size 
   FROM TABLE( SYSPROC.ADMIN_GET_TAB_INFO( 'DBUSER1', 'EMPLOYEE' )) AS T
例 3: 表 DBUSER1.EMPLOYEE 用のコンプレッション・ディクショナリーの合計サイズを判別します。
SELECT SUBSTR(TABSCHEMA,1,10) AS TBSCHEMA, SUBSTR(TABNAME,1,10) AS TBNAME, 
   DICTIONARY_SIZE + XML_DICTIONARY_SIZE AS TOTAL_DICTIONARY_SIZE
   FROM TABLE(SYSPROC.ADMIN_GET_TAB_INFO('DBUSER1','EMPLOYEE'))
例 4: マルチディメンション・クラスタリング表 SAMPLE.STAFF から再利用可能なスペースの量を判別します。
SELECT RECLAIMABLE_SPACE 
   FROM TABLE(SYSPROC.ADMIN_GET_TAB_INFO('SAMPLE','STAFF'))