ADMIN_GET_INDEX_INFO 表関数 - 索引情報を戻す

ADMIN_GET_INDEX_INFO 表関数は、圧縮情報および索引の論理および物理サイズなど、カタログ・ビューで使用できない索引情報を戻します。

構文

構文図を読む構文図をスキップするADMIN_GET_INDEX_INFO(objecttype ,objectschema,objectname )

スキーマは SYSPROC です。

表関数パラメーター

objecttype
オブジェクト・タイプを示す、タイプ VARCHAR(1) の入力引数。値は以下のいずれかでなければならず、大/小文字を区別します。
  • 'T'、NULL、または空ストリング (") (表を示す場合)
  • 'I' (索引の場合)
objectschema
オブジェクト・スキーマを指定する、タイプ VARCHAR (128) の大/小文字を区別する入力パラメーター。
objecttype が 'T'、NULL、または空ストリング ('') である場合、objectschema は表スキーマを示します。
  • objectschema が指定され、objectname が NULL または空ストリング ('') の場合、指定されたスキーマのすべての表に関する情報が戻されます。
  • objectschemaobjectname の両方が指定される場合、指定された表のすべての索引に関する情報が戻されます。
objecttype が 'I' である場合、objectschema は索引スキーマを示します。
  • objectschema が指定され、objectname が NULL または空ストリング (") の場合、指定されたスキーマのすべての索引に関する情報が戻されます。
  • objectschemaobjectname の両方が指定される場合、指定された索引に関する情報が戻されます。
  • objectschemaobjectname のどちらも指定されない場合、すべてのスキーマのすべての索引に関する情報が戻されます。

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

戻される情報

表 1. ADMIN_GET_INDEX_INFO によって戻される情報
列名 データ・タイプ 説明
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 属性の状態。
  • Y = 索引圧縮は使用可能
  • N = 索引圧縮は使用不可
INDEX_COMPRESSED CHAR(1) 物理索引形式。
  • Y = 索引は圧縮形式である
  • N = 索引は非圧縮形式である
物理索引形式が圧縮属性と一致しない場合、索引を定義済み形式に変換するには索引の再編成が必要です。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。
INDEX_PARTITIONING CHAR(1) 索引のパーティション特性を示します。
  • N = 非パーティション索引
  • P = パーティション索引
  • ブランク = 索引はパーティション表にはない
INDEX_OBJECT_L_SIZE BIGINT 索引オブジェクトの論理サイズ。非パーティション表の場合、これは、表に定義されるすべての索引に対して論理的に割り振られるディスク・スペースの量になります。パーティション表の非パーティション索引の場合、これは、索引に対して論理的に割り振られるディスク・スペースの量になります。パーティション表のパーティション索引の場合、これは、データ・パーティションに定義されるすべての索引パーティションに対して論理的に割り振られるディスク・スペースの量になります。すべてのサイズはキロバイト (KB) 単位でレポートされます。

論理サイズとは、表またはデータ・パーティションが認識するスペースの量のことです。このサイズは表またはデータ・パーティションの索引データを保持するために物理的に割り振られるスペースの量より小さくなることもあります (例えば論理表の切り捨ての場合)。戻されるサイズは、索引に対して論理的に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の場合は EMP エクステントの見積もりを考慮に入れます。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。

INDEX_OBJECT_P_SIZE BIGINT 索引オブジェクトの物理サイズ。非パーティション表の場合、これは、表に定義されるすべての索引に対して物理的に割り振られるディスク・スペースの量になります。パーティション表の非パーティション索引の場合、これは、索引に対して物理的に割り振られるディスク・スペースの量になります。パーティション表のパーティション索引の場合、これは、データ・パーティションに定義されるすべての索引パーティションに対して物理的に割り振られるディスク・スペースの量になります。すべてのサイズはキロバイト (KB) 単位でレポートされます。

戻されるサイズは、索引に割り振られるすべてのエクステントを考慮に入れ、DMS 表スペースで作成される索引の EMP エクステントが含まれます。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。

INDEX_REQUIRES_REBUILD CHAR(1) 索引の再作成状況。
  • 表またはデータ・パーティションで定義される索引で再編成が必要な場合は Y
  • それ以外の場合は N
この関数を実行したときに表でエラーが発生した場合、この値は NULL です。
LARGE_RIDS CHAR(1) 索引がラージ行 ID (RID) を使用しているかどうかを示します (4 バイトのページ番号と 2 バイトのスロット番号)。
  • 「Y」は、索引がラージ RID を使用していることを示します。
  • 「N」は、索引がラージ RID を使用していないことを示します。
  • 「P」(保留) は、索引が定義されている表がラージ RID をサポートしている (つまり表が LARGE 表スペースにある) ものの、表またはデータ・パーティションの索引がまだ再編成されていないかまたは再作成されていないことを示します。したがって、表はまだ 4 バイト RID を使用しているので、表または索引をラージ RID に変換するアクションを取る必要があります。
この関数を実行する表に誤りがある場合、この値は NULL になります。
RECLAIMABLE_SPACE BIGINT この値は、DMS 表スペース内の索引にのみ適用されます。この値は、RECLAIM EXTENTS オプションを指定した REORG INDEXES または REORG INDEX コマンドを実行することによって索引オブジェクト全体から再利用できるディスク・スペースの見積もりです (キロバイト単位)。DMS 表スペースに定義されていない索引については、値はゼロです。この関数を実行したときに表または索引でエラーが発生した場合、この値は NULL です。