ADMIN_GET_INDEX_INFO 表関数 - 索引情報を戻す
ADMIN_GET_INDEX_INFO 表関数は、圧縮情報および索引の論理および物理サイズなど、カタログ・ビューで使用できない索引情報を戻します。
構文
スキーマは SYSPROC です。
表関数パラメーター
- objecttype
- オブジェクト・タイプを示す、タイプ VARCHAR(1) の入力引数。値は以下のいずれかでなければならず、大/小文字を区別します。
- 'T'、NULL、または空ストリング (") (表を示す場合)
- 'I' (索引の場合)
- objectschema
- オブジェクト・スキーマを指定する、タイプ VARCHAR (128) の大/小文字を区別する入力パラメーター。
objecttype が 'T'、NULL、または空ストリング ('') である場合、objectschema は表スキーマを示します。
- objectschema が指定され、objectname が NULL または空ストリング ('') の場合、指定されたスキーマのすべての表に関する情報が戻されます。
- objectschema と objectname の両方が指定される場合、指定された表のすべての索引に関する情報が戻されます。
objecttype が 'I' である場合、objectschema は索引スキーマを示します。- objectschema が指定され、objectname が NULL または空ストリング (") の場合、指定されたスキーマのすべての索引に関する情報が戻されます。
- objectschema と objectname の両方が指定される場合、指定された索引に関する情報が戻されます。
- objectschema と objectname のどちらも指定されない場合、すべてのスキーマのすべての索引に関する情報が戻されます。
objectname が指定され、objectschema が指定されない場合、関数が SQL エラー を戻します。 値が NULL または空ストリング (") である場合、パラメーター値は未指定であるといいます。
- objectname
- オブジェクト名を指定する、タイプ VARCHAR (128) の大/小文字を区別する入力パラメーター。 objectschema パラメーターの説明を参照してください。
許可
- ルーチンに対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
デフォルトの PUBLIC 特権
制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。
例
表のいくつかの索引に対して索引圧縮を有効にした後で、どの索引が圧縮されるのか、および圧縮するためにはどの索引を再作成する必要があるかを知りたいとします。 この例では、S はスキーマ名、T1 は表名です。
db2 SELECT iid, compress_attr, index_compressed
FROM TABLE(sysproc.admin_get_index_info('','S','T1')) AS t以下はこの照会の出力例です。
IID COMPRESS_ATTR INDEX_COMPRESSED
--------- ------------- ----------------
1 Y Y
2 Y Y
3 Y N
4 N N さらに、スキーマ S2 のすべての索引の他の索引情報を参照するとします。この例では、それぞれ次の意味を持つとします。
- T2 = 2 つのデータ・パーティションを持つパーティション表
- T3 = 非パーティション表
- IND_1 = T2 上の非パーティション索引
- IND_2 = T2 上のパーティション索引
- IND_3 = T2 上のパーティション索引
- IND_4 = T3 上の索引
- IND_5 = T3 上の索引
db2 SELECT tabname, indname, iid,index_partitioning, datapartitionid,
index_object_l_size, index_object_p_size, index_requires_rebuild,
large_rids FROM TABLE(sysproc.admin_get_index_info('I','S2','')) AS t以下はこの照会の出力例です。
TABNAME INDNAME IID INDEX_PARTITIONING DATAPARTITIONID
------- ------- --------- ------------------ ---------------
T2 IND_1 1 N 0
T2 IND_2 2 P 1
T2 IND_2 2 P 2
T2 IND_3 3 P 1
T2 IND_3 3 P 2
T3 IND_4 4 0
T3 IND_5 5 0
この手順からの出力 (続き):
INDEX_OBJECT_L_SIZE INDEX_OBJECT_P_SIZE INDEX_REQUIRES_REBUILD LARGE_RIDS
------------------- ------------------- ---------------------- ----------
50 51 N Y
40 40 N Y
45 45 N Y
40 40 N Y
45 45 N Y
20 20 N Y
20 20 N Y
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| INDSCHEMA | VARCHAR(128) | index_schema - 索引スキーマ・モニター・エレメント |
| INDNAME | VARCHAR(128) | index_name - 索引名モニター・エレメント |
| TABSCHEMA | VARCHAR(128) | table_schema - 表スキーマ名モニター・エレメント |
| TABNAME | VARCHAR(128) | table_name - 表名モニター・エレメント |
| DBPARTITIONNUM | SMALLINT | dbpartitionnum - データベース・パーティション番号モニター・エレメント |
| IID | SMALLINT | iid - 索引 ID モニター・エレメント |
| DATAPARTITIONID | INTEGER | データ・パーティション ID。 |
| COMPRESS_ATTR | CHAR(1) | 索引の COMPRESSION 属性の状態。
|
| INDEX_COMPRESSED | CHAR(1) | 物理索引形式。
|
| INDEX_PARTITIONING | CHAR(1) | 索引のパーティション特性を示します。
|
| INDEX_OBJECT_L_SIZE | BIGINT | 索引オブジェクトの論理サイズ。非パーティション表の場合、これは、表に定義されるすべての索引に対して論理的に割り振られるディスク・スペースの量になります。パーティション表の非パーティション索引の場合、これは、索引に対して論理的に割り振られるディスク・スペースの量になります。パーティション表のパーティション索引の場合、これは、データ・パーティションに定義されるすべての索引パーティションに対して論理的に割り振られるディスク・スペースの量になります。すべてのサイズはキロバイト (KB) 単位でレポートされます。 論理サイズとは、表またはデータ・パーティションが認識するスペースの量のことです。このサイズは表またはデータ・パーティションの索引データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。戻されるサイズは、索引に対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の場合は EMP エクステントの見積もりを考慮に入れます。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。 |
| INDEX_OBJECT_P_SIZE | BIGINT | 索引オブジェクトの物理サイズ。非パーティション表の場合、これは、表に定義されるすべての索引に対して物理的に割り振られるディスク・スペースの量になります。パーティション表の非パーティション索引の場合、これは、索引に対して物理的に割り振られるディスク・スペースの量になります。パーティション表のパーティション索引の場合、これは、データ・パーティションに定義されるすべての索引パーティションに対して物理的に割り振られるディスク・スペースの量になります。すべてのサイズはキロバイト (KB) 単位でレポートされます。 戻されるサイズは、索引に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の EMP エクステントが含まれます。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。 |
| INDEX_REQUIRES_REBUILD | CHAR(1) | 索引の再作成状況。
|
| LARGE_RIDS | CHAR(1) | 索引がラージ行 ID (RID) を使用しているかどうかを示します (4 バイトのページ番号と 2 バイトのスロット番号)。
|
| RECLAIMABLE_SPACE | BIGINT | この値は、DMS 表スペース内の索引にのみ適用されます。この値は、RECLAIM EXTENTS オプションを指定した REORG INDEXES または REORG INDEX コマンドを実行することによって索引オブジェクト全体から再利用できるディスク・スペースの見積もりです (キロバイト単位)。DMS 表スペースに定義されていない索引については、値はゼロです。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。 |
