查询DB表实际大小

前端之家收集整理的这篇文章主要介绍了查询DB表实际大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.查询DB表实际大小(保证clob/blob/nclob lob大字段)

selectround(sum(bytes/1024/1024/1024),2)||'G'fromdba_segmentswhereowner='用户'
andsegment_name='表'ORsegment_nameIN(selectSEGMENT_NAMEfromdba_LOBSwhereTABLE_NAME='表'andowner='用户');

如果不是dba用户可以用user_segments & user_lobs 且不需要owner.


2. 查询表里LOB大字段

selectround(sum(b.BYTES/1024/1024),2)||'M'fromdba_lobsa,dba_segmentsb
wherea.segment_name=b.segment_nameanda.owner='用户'anda.table_name='表';


3.查询表大小不带LOB大字段

selectround(sum(bytes/1024/1024/1024),2)||'G'fromuser_segmentswheresegment_name='表';


4.表数据被删除

a. 若表的数据被truncate,上述方法查到的数据会立即变化

b. 若表的数据被delete,则需要对表进行收缩,上述查询才会变化;

altertable表名enablerowmovement;
altertable表名shrinkspace;

猜你在找的Oracle相关文章