我试图弄清楚架构中每个表的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
它可以工作,但是我很确定在这个计算中需要除法。有什么建议吗?
答案 0 :(得分:1)
查询中的所有列均为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