我正在尝试计算模式中每个表的大小( kb )。我设置了一个查询,但是我不确定我是否得到了正确的输出。我在运行DB2 v9 LUW。
我的问题是:
SELECT T.TABNAME, T.TABSCHEMA, COLCOUNT, TYPE, (DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) AS TOTAL_SIZE
FROM SYSCAT.TABLES AS T, SYSIBMADM.ADMINTABINFO AS A
WHERE T.TABNAME = A.TABNAME 它可以工作,但我相当确定在这个计算中除法是必需的。有什么建议吗?
发布于 2014-06-06 07:35:36
查询中的所有列都以KB为单位。
如果您想要查看以KB为单位的大小,则将其保留为原样,但如果您希望以MB为单位,则将结果除以1024。
或者,您可以使用以下查询:
SELECT
T.TABNAME,
T.TABSCHEMA,
COLCOUNT,
TYPE,
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) AS TOTAL_SIZE_IN_KB,
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024 AS TOTAL_SIZE_IN_MB,
(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) / (1024*1024) AS TOTAL_SIZE_IN_GB
FROM SYSCAT.TABLES AS T, SYSIBMADM.ADMINTABINFO AS A
WHERE T.TABNAME = A.TABNAME https://stackoverflow.com/questions/24062974
复制相似问题