ADMIN_GET_TAB_COMPRESS_INFO 表関数 - 圧縮による節約の見積もり

ADMIN_GET_TAB_COMPRESS_INFO 表関数は、RESETDICTIONARY オプションを指定した REORG が実行されると仮定して、圧縮により得られる表の節約を見積もります。

この表関数は、以前のバージョンの Db2® における非推奨 ADMIN_GET_TAB_COMPRESS_INFO 表関数での「ESTIMATE」モードに直接置き代わるものです。

構文

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

スキーマは SYSPROC です。

表関数パラメーター

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

許可

このルーチンを実行するには、以下のいずれかの権限が必要です。
  • ルーチンに対する EXECUTE 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

なし

戻される情報

表 1. ADMIN_GET_TAB_COMPRESS_INFO で戻される情報
列名 データ・タイプ 説明
TABSCHEMA VARCHAR(128) table_schema - 表スキーマ名モニター・エレメント
TABNAME VARCHAR(128) table_name - 表名モニター・エレメント
DBPARTITIONNUM SMALLINT dbpartitionnum - データベース・パーティション番号モニター・エレメント
DATAPARTITIONID INTEGER データ・パーティション番号。
OBJECT_TYPE VARCHAR(4) オブジェクトのタイプ。 以下のいずれか
  • DATA
  • XML
ROWCOMPMODE CHAR(1) オブジェクトの現在の行圧縮モード。 戻されるメトリックは、以下のいずれかの値になります。
  • クラシック行圧縮が使用可能な場合は「S」
  • アダプティブ行圧縮が使用可能な場合は「A」
  • 行圧縮が使用可能でない場合はブランク
PCTPAGESSAVED_CURRENT SMALLINT 行圧縮により節約されるページの現在のパーセンテージ。
AVGROWSIZE_CURRENT SMALLINT 現在の平均レコード長。
PCTPAGESSAVED_STATIC SMALLINT クラシック行圧縮により節約されるページのパーセンテージの見積もり。
AVGROWSIZE_STATIC SMALLINT クラシック行圧縮による平均レコード長の見積もり。
PCTPAGESSAVED_ADAPTIVE SMALLINT アダプティブ行圧縮により節約されるページのパーセンテージの見積もり。
AVGROWSIZE_ADAPTIVE SMALLINT アダプティブ行圧縮による平均レコード長の見積もり。

使用上の注意

  • ADMIN_GET_TAB_COMPRESS_INFO 表関数は行圧縮に固有のものであり、カラム・オーガナイズ表には適用されません。 カラム・オーガナイズ表を指定した場合、この表関数は 0 行を返します。
  • tabschematabname の両方が指定される場合、その特定の表の情報のみが戻されます。
  • tabschema が指定され、tabname が空 (") または NULL の場合、指定したスキーマのすべての表に関する情報が戻されます。
  • tabschema が空 (") または NULL で、tabname が指定される場合、エラーは戻されます。 特定の表の情報を取り出すには、その表がスキーマと表名の両方によって識別されることが必要です。
  • tabschematabname の両方が空 (") または NULL の場合、すべての表の情報が戻されます。
  • tabschema または tabname が存在しないか、あるいは tabname が表名 (タイプ T) またはマテリアライズ照会表名 (タイプ S) と一致しない場合、空の結果セットが戻されます。
  • ADMIN_GET_TAB_COMPRESS_INFO 表関数が指定の表のデータを検索するとき、この表関数は SYSTABLES の対応する行に対する共有ロックを獲得します。これは、戻されるデータの整合性を確保するための動作です (例えば、情報の検索中に、検索されている表が変更されないようにするなど)。 ロックが保持されるのは、表関数の呼び出し期間中ではなく、表の圧縮情報を検索する間だけです。
  • 指定された表に XML 列が 1 つ以上ある場合、 ADMIN_GET_TAB_COMPRESS_INFO 表関数はパーティションごとに 2 行返します。OBJECT_TYPE として「DATA」を返す 1 行と、 OBJECT_TYPE として「XML」を返す 1 行です。指定された表に XML 列がない場合は、OBJECT_TYPE が「DATA」である行がパーティションごとに 1 行のみ返されます。
  • XML オブジェクト・タイプの場合、PCTPAGESSAVED_ADAPTIVE および PCTPAGESSAVED_STATIC として戻される見積もりは等しくなります。アダプティブ圧縮は表のデータ部分にのみ適用されるからです。

例 1: SCHEMA1 スキーマの TABLE1 表の現在の圧縮結果と、クラシック行圧縮およびアダプティブ圧縮の両方の情報の見積レポートを表示します。
SELECT SUBSTR(TABSCHEMA, 1, 10) AS TABSCHEMA, SUBSTR(TABNAME, 1, 10) AS TABNAME, 
       DBPARTITIONNUM, DATAPARTITIONID, OBJECT_TYPE, ROWCOMPMODE, 
       PCTPAGESSAVED_CURRENT, AVGROWSIZE_CURRENT, 
       PCTPAGESSAVED_STATIC, AVGROWSIZE_STATIC, 
       PCTPAGESSAVED_ADAPTIVE, AVGROWSIZE_ADAPTIVE 
FROM TABLE(SYSPROC.ADMIN_GET_TAB_COMPRESS_INFO('SCHEMA1', 'TABLE1'))
この照会からの出力:
TABSCHEMA  TABNAME    DBPARTITIONNUM DATAPARTITIONID OBJECT_TYPE ROWCOMPMODE ...
---------- ---------- -------------- --------------- ----------- ----------- ...
SCHEMA1    TABLE1                  0               0 DATA        A           ...
SCHEMA1    TABLE1                  0               0 XML         S           ...

PCTPAGESSAVED_CURRENT AVGROWSIZE_CURRENT PCTPAGESSAVED_STATIC AVGROWSIZE_STATIC ...
--------------------- ------------------ -------------------- ----------------- ...
                   60                 40                   68                34 ...
                   58                255                   62               198 ...

PCTPAGESSAVED_ADAPTIVE AVGROWSIZE_ADAPTIVE 
---------------------- ------------------- 
                    70                  30 
                    62                 198 

  2 record(s) selected.