如何检查表在DB2中使用了多少空间

如何检查表在DB2中使用了多少空间,db2,Db2,在DB2中,是否有一种方法可以确定一个表占用了分配给底层表空间的总空间的多少。” 谢谢你的问题产生了一个错误的二分法,因为创建表空间时可能没有分配有限的空间。限制可能是表空间所在的驱动器或共享。但是如果你知道分配给表空间的空间,或者只需要表空间当前使用大小的百分比,那么是的,有一种方法可以知道 SELECT * FROM SYScat.tables where tabname='mytable'; 将告诉您一个表正在使用多少页 然后在命令行:LiST表空间SHOW DETAIL 将告诉您表空间

在DB2中,是否有一种方法可以确定一个表占用了分配给底层表空间的总空间的多少。”


谢谢你的问题产生了一个错误的二分法,因为创建表空间时可能没有分配有限的空间。限制可能是表空间所在的驱动器或共享。但是如果你知道分配给表空间的空间,或者只需要表空间当前使用大小的百分比,那么是的,有一种方法可以知道

SELECT * FROM SYScat.tables where tabname='mytable';
将告诉您一个表正在使用多少页

然后在命令行:
LiST表空间SHOW DETAIL
将告诉您表空间中总共有多少页,以及以字节为单位的页大小

Select * from sysibmadm.tbsp_utilization where tbsp_name='MyTblSpace' 
将为您提供表空间的最大大小(如果有)。

DB2查询以检查表大小 数据大小 索引大小
您可以从SYSIBMADM.ADMINTABINFO表中获取基础表物理大小

命令如下

db2“选择SUBSTR(TABSCHEMA,1,15)作为模式,选择SUBSTR(TABNAME,1,20)作为模式 表名,数据对象大小,索引对象大小长对象大小长对象大小XML对象大小, (数据对象大小+索引对象大小+长对象大小+ LOB_对象大小+XML_对象大小)作为总大小 SYSIBMADM.ADMINTABINFO,其中TABNAME='table\u name'

总物理大小是所有数据、索引、LONG、LOB和XML对象物理大小的总和(_p_size表示物理大小)


无法获取表空间名称(即使可以获取表空间id)在SYSIBMADM.ADMINTABINFO中,您需要将上面的查询与SYSCAT.TABLES

连接到DB2的哪个版本?它在哪个平台上运行?这个答案仅适用于在Linux、UNIX或Windows上运行的DB2。此外,SYSCAT.TABLES中的NPAGES和FPAGES仅在执行RUNSTATS时更新;这些值不准确。此外,它们不包括分配给索引、LOB等的空间。最好查看SYSIBMADM.ADMINTABINFO。
select 
   a.CARD*(sum(b.AVGCOLLEN)+10)/1024/1024 as Tablesize_in_MB 
from 
   syscat.tables as a, syscat.columns as b 
where 
   a.TABNAME = b.TABNAME and b.TABNAME = 'TABLE_NAME' group by a.CARD
select 
  char(date(t.stats_time))||' '||char(time(t.stats_time)) as statstime 
  ,substr(t.tabschema,1,8)||'.'||substr(t.tabname,1,24) as tabname 
  ,card as rows_per_table 
  ,decimal(float(t.npages)/ ( 1024 / (b.pagesize/1024)),9,2) as used_mb 
  ,decimal(float(t.fpages)/ ( 1024 / (b.pagesize/1024)),9,2) as allocated_mb 
from 
  syscat.tables t , syscat.tablespaces b 
where t.tbspace=b.tbspace 
order by 5 desc with ur
select 
  rtrim(substr(i.tabschema,1,8))||'.'||rtrim(substr( i.tabname, 1,24)) as tabname 
 ,decimal(sum(i.nleaf)/( 1024 / (b.pagesize/1024)),12,2) as indx_used_per_table_mb 
from 
   syscat.indexes i, syscat.tables t , syscat.tablespaces b 
where 
   i.tabschema is not null and i.tabname=t.tabname 
   and i.tabschema=t.tabschema and t.tbspace=b.tbspace 
group by 
   i.tabname,i.tabschema, b.pagesize order by 2 desc with ur