• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

查看某个表在数据库中占用空间的大小

mysql 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

一、oracle数据库 1)查看某一用户下的某张表 select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||’M’ from USER_extents where SEGMENT_TYPE=’TABLE’ and SEGMENT_NAME=’表名’ group by SEGMENT_NAME,TABLESPACE_NAME; 2)查所有的表 select SEGME

一、oracle数据库

1)查看某一用户下的某张表

select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||’M’ from USER_extents where SEGMENT_TYPE=’TABLE’ and SEGMENT_NAME=’表名’ group by SEGMENT_NAME,TABLESPACE_NAME;

2)查所有的表
select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||’M’ from dba_extents where SEGMENT_TYPE=’TABLE’ group by SEGMENT_NAME,TABLESPACE_NAME;

二、DB2数据库

1)方法1(统计表所占用的物理空间大小,包括数据、索引、大对象和xml空间大小)

SELECT (本文来源[email protected]搞@^&代*@码)网5DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024||’M’ AS TOTAL_P_SIZE FROM SYSIBMADM.ADMINTABINFO where TABNAME = ‘表名’

其中DATA_OBJECT_L_SIZE代表表的逻辑大小(KB),DATA_OBJECT_P_SIZE为表的物理大小(KB)。

逻辑大小和物理大小的差别:我们往某张表插入很多数据,然后删除一些数据,但表占据的空间并不会释放,当新的数据插入时,仍然会使用这些空间。实际占用的空间叫做逻辑空间,分配过的空间叫物理空间,逻辑空间可能会小于物理空间,这两者的差异可以通过reorg来消除。

2)方法2(ADMIN_GET_INFO表函数返回结果与SYSIBMADM.ADMINTABINFO管理视图类似)

SELECT TABNAME,SUM(DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024||’M’ FROM TABLE (SYSPROC.ADMIN_GET_TAB_INFO(‘模式名’,’表名’)) AS T GROUP BY TABNAME

使用此语句,统计速度要比SYSIBMADM.ADMINTABINFO快很多。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:查看某个表在数据库中占用空间的大小

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址