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 管理ビューのスキーマに対する SELECTIN 特権
- ADMINTABINFO 管理ビューに対する CONTROL 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
デフォルトの PUBLIC 特権
制限のないデータベースでは、このビューが自動的に作成されると、SELECT 特権が PUBLIC に付与されます。
例
SELECT * FROM SYSIBMADM.ADMINTABINFO
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
SELECT TABSCHEMA, TABNAME FROM SYSIBMADM.ADMINTABINFO
WHERE LARGE_RIDS = 'P'
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 に付与されます。
構文
スキーマは SYSPROC です。
ルーチン・パラメーター
- タブ・スキーマ
- スキーマ名を指定する、タイプ VARCHAR(128) の入力引数。 タブ名
- 表、マテリアライズ照会表、または階層表それぞれの名前を指定する、タイプ VARCHAR(128) の入力引数。
戻される情報
列名 | データ・タイプ | 説明 |
---|---|---|
TABSCHEMA | VARCHAR(128) | table_schema - 表スキーマ名 : モニター・エレメント |
TABNAME | VARCHAR(128) | table_name - 表名 : モニター・エレメント |
TABTYPE | CHAR(1) | 表タイプ:
|
DBPARTITIONNUM | SMALLINT | dbpartitionnum - データベース・パーティション番号 : モニター・エレメント |
DATA_PARTITION_ID | INTEGER | data_partition_id - データ・パーティション ID : モニター・エレメント |
AVAILABLE | CHAR(1) | 表の状態:
注: リカバリー不能ロードを使用してロールフォワードすると、表は使用不可状態になります。
|
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) | 表に対する表のインプレース再編成の現在の状況。 状況値は、以下のいずれかになります。
|
LOAD_STATUS | VARCHAR(12) | 表に対するロード操作の現在の状況。 状況値は、以下のいずれかになります。
|
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」(保留) が返されます。
|
LARGE_SLOTS | CHAR(1) | 表でラージ・スロット (1 ページにつき 255 を超える行が可能) が使用されているかどうかを示す標識。 値「Y」は表でラージ・スロットが使用されていることを示し、「N」はラージ・スロットが使用されていないことを示します。 以下の基準が両方とも満たされている場合は、値「P」(保留) が返されます。
|
DICTIONARY_SIZE | BIGINT | 表ディクショナリーのサイズ (バイト)。 表に行コンプレッション・ディクショナリーが存在する場合に行の圧縮で使用されます。 履歴ディクショナリーが存在する場合、この値は現在のディクショナリー・サイズと履歴ディクショナリー・サイズの合計になります。 |
BLOCKS_PENDING_CLEANUP | BIGINT | blocks_pending_cleanup クリーンアップ保留中のロールアウト済みブロック : モニター・エレメント |
STATSTYPE | CHAR(1) |
|
XML_RECORD_TYPE | SMALLINT | 現在表で使用されている XML レコードのタイプを示します。
|
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 - カラム・オーガナイズのデータ・オブジェクトの物理サイズ |
STATSPROFTYPE 重要: この列は、 Db2 バージョン 11.5 モディフィケーションパック 1 以降のバージョンで使用できます。
|
CHAR(1) |
|
TENANT_ID | BIGINT | tenant_id - テナント ID モニター・エレメント |
TENANT_NAME | VARCHAR(128) | tenant_name - テナント名モニター・エレメント |
使用上の注意
- tabschema と tabname の両方が指定される場合、その特定の表の情報のみが戻されます。
- tabschema が指定され、tabname が NULL または空ストリング (") の場合、指定したスキーマのすべての表に関する情報が戻されます。
- tabschema が NULL または空ストリング (") で、tabname が指定される場合、エラーは戻されます。 特定の表の情報を取り出すには、その表がスキーマと表名の両方によって識別されることが必要です。
- tabschema と tabname の両方が NULL または空ストリング (") の場合、すべての表の情報が戻されます。
- tabschema または tabname が存在しないか、あるいは tabname が表名 (タイプ T)、マテリアライズ照会表名 (タイプ S)、または階層表名 (タイプ H) と一致しない場合、空の結果セットが戻されます。
- ADMIN_GET_TAB_INFO 表関数が指定の表のデータを検索するとき、この表関数は SYSTABLES の対応する行に対する共有ロックを獲得します。 これは、戻されるデータの整合性を確保するための動作です (例えば、情報の検索中に、検索されている表がドロップされないようにするなど)。 ロックが保持されるのは、表関数の呼び出し期間中ではなく、表のサイズおよび状態に関する情報を検索する間だけです。
- SMS 表スペースの表の物理サイズが報告されますが、このサイズは論理サイズと同じです。
- 表で INPLACE の REORG がアクティブになっていると、データ・オブジェクトの物理サイズ (DATA_OBJECT_P_SIZE) は計算されません。 論理サイズだけが戻されます。 INPLACE の REORG が表でアクティブになっているかどうかは、INPLACE_REORG_STATUS 出力の列を見ると分かります。
例
SELECT * FROM TABLE (SYSPROC.ADMIN_GET_TAB_INFO('DBUSER1', 'EMPLOYEE'))
AS T
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
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'))
SELECT RECLAIMABLE_SPACE
FROM TABLE(SYSPROC.ADMIN_GET_TAB_INFO('SAMPLE','STAFF'))