IBM Support

[Db2] データベースに含まれる各表のサイズを一覧する方法

Question & Answer


Question

データベースや、各表スペースに含まれる表のサイズを一覧する方法はありますか?

Answer

表に所属するオブジェクトのサイズは ADMINTABINFO 管理ビューやADMIN_GET_TAB_INFO 表関数で一覧できます。ただし、以下の点に注意が必要です。
  • ひとつの表でも表データ(DAT)、索引(INX)、LOB/XML を異なる表スペースに配置できます。
  • パーティション表はパーティション毎に異なる表スペースへ配置できます。さらに各パーティションの表データ、索引、LOB/XML を異なる表スペースに配置できます。

注: 各表の各オブジェクトがどの表スペースに格納されるかは、SYSCAT.TABLESSYSCAT.DATAPARTITIONS カタログ・ビューで検索できます。

データベースに含まれる表ごとのサイズを大きい順に一覧するには、以下のような SQL が利用できます。

SELECT TABSCHEMA, TABNAME, SUM(DATA_OBJECT_P_SIZE) + SUM(COL_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 ORDER BY 3 DESC

指定した表スペースで、多くのスペースを占めている表を一覧するには、以下のような SQL が利用できます。
以下の例では表スペース ID 0 (TBS=0: カタログ表スペース) の情報を一覧しています。

with TBSSIZE as
(select d.TABNAME,d.TABSCHEMA,d.DATAPARTITIONID,d.TBSPACEID as tbs,DATA_OBJECT_P_SIZE + COL_OBJECT_P_SIZE as size from SYSCAT.DATAPARTITIONS d
 join SYSIBMADM.ADMINTABINFO t
 on d.TABNAME=t.TABNAME and d.TABSCHEMA=t.TABSCHEMA and d.DATAPARTITIONID=t.DATA_PARTITION_ID
 union
 select d.TABNAME,d.TABSCHEMA,d.DATAPARTITIONID,d.INDEX_TBSPACEID as tbs,INDEX_OBJECT_P_SIZE as size from SYSCAT.DATAPARTITIONS d
 join SYSIBMADM.ADMINTABINFO t
 on d.TABNAME=t.TABNAME and d.TABSCHEMA=t.TABSCHEMA and d.DATAPARTITIONID=t.DATA_PARTITION_ID
 union
 select d.TABNAME,d.TABSCHEMA,d.DATAPARTITIONID,d.LONG_TBSPACEID as tbs,LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE as size from SYSCAT.DATAPARTITIONS d
 join SYSIBMADM.ADMINTABINFO t
 on d.TABNAME=t.TABNAME and d.TABSCHEMA=t.TABSCHEMA and d.DATAPARTITIONID=t.DATA_PARTITION_ID )
 select char(TABSCHEMA,20),char(TABNAME,50),TBS,SUM(size) from TBSSIZE group by TABSCHEMA,TABNAME,TBS having TBS=0 order by SUM(size) desc
注:上記いずれの SQL も Db2 V10.1 以前の場合、COL_OBJECT_P_SIZE を除去する必要があります。
注:上記いずれの SQL も返すサイズはキロバイト (KB) 単位です。
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlYAAU","label":"Database Objects-\u003ETables"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"10.5.0;11.1.0;11.5.0","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
08 March 2024

UID

swg22009993