专业编程基础技术教程

网站首页 > 基础教程 正文

如何准确计算出某个表所占的物理存储?

ccvgpt 2024-10-16 08:23:12 基础教程 7 ℃

概述

之前我记得是分享过怎么去看某个表的数据所占的存储的,但是那时候有个地方考虑的不太仔细,实际上应该分有没大字段这种情况,下面对这两种情况做一个划分和计算表存储的方式。


查看没有大字段的表的数据存储

脚本如下:

如何准确计算出某个表所占的物理存储?

select s.owner,
 s.segment_name,
 s.segment_type,
 s.bytes/1024/1024 MB
 from dba_segments s
 where s.owner = 'GZCSS_GZBH'
 order by 4;

如果没有大字段就直接这样计算就可以了,如果没有DBA权限就查user_segments这个表。


查有大字段的表的数据存储

脚本如下:

select s.owner,
 s.segment_name,
 s.segment_type,
 l.table_name,
 s.bytes/1024/1024 MB
 from dba_segments s, dba_lobs l
 where s.segment_name = l.segment_name
 and s.owner = 'GZCSS_GZBH'
 order by 5;

这里查询可以知道ARCHIVEMESSAGES 表的大字段所占存储 : 0.0625MB

select s.owner,
 s.segment_name,
 s.segment_type,
 s.bytes/1024/1024 MB
 from dba_segments s
 where s.SEGMENT_NAME ='ARCHIVEMESSAGES'

这里查询可以知道ARCHIVEMESSAGES 表除了大字段所占存储 : 0.625MB

也就是ARCHIVEMESSAGES 表实际所占存储应该是0.625+0.0625 MB


关于这两种不同类型的表的计算方式就介绍到这了,因为是测试环境,所以数据量少很多,大家也可以自己测试一下。

后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!!

Tags:

最近发表
标签列表