Oracle 计算表占用空间大小
我们可以通过系统视图DBA_SEGMENTS、USER_SEGMETNS、DBA_TABLES来查看一个表所占空间的大小,如下所示:
SELECT SEGMENT_NAME TABLE_NAME
,SUM(BLOCKS) BLOCKS
,SUM(BYTES)/(1024*1024) "TABLE_SIZE[MB]"
FROM USER_SEGMENTS
WHERE SEGMENT_TYPE='TABLE'
AND SEGMENT_NAME=&TABLE_NAME
GROUP BY SEGMENT_NAME; SELECT SEGMENT_NAME TABLE_NAME
,SUM(BLOCKS) BLOCKS
,SUM(BYTES)/(1024*1024) "TABLE_SIZE[MB]"
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE='TABLE'
AND SEGMENT_NAME=&TABLE_NAME
GROUP BY SEGMENT_NAME;
如果你通过系统视图DBA_TABELS、USER_TABLES统计、查看表所占的空间大小,那么由于统计信息过时或总是持续有DML操作(INSERTR、UPDATE、DELETE),那么有可能用下面SQL统计出的信息可能不准确。需要先收集一下表对象的统计信息。 另外,可能每个数据库的db_block_size有所不同,不一定是8192。所以注意修改.
ANALYZE TABLE OWNER.TABLE_NAME COMPUTE STATISTICS;
或
EXEC DBMS_STATS.GATHER_TABLE_STATS('OWNER','TABLE_NAME');
SELECT OWNER OWNER_NAME
,TABLE_NAME TABLE_NAME
,TABLESPACE_NAME TABLESPACE_NAME
,BLOCKS ACTUAL_BLOCKS
,BLOCKS + EMPTY_BLOCKS TOTAL_BLOCKS
,(BLOCKS + EMPTY_BLOCKS) * 8192/(1024*1024)
"TABLE_SIZE[MB]"
FROM DBA_TABLES
WHERE OWNER=&OWNER
AND TABLE_NAME=&TABLE_NAME
关于DBA_TABLES和DBA_SEGMENTS表中的block的区别,其实它们的关系如下所示:
自动段空间管理(Automatic Segment Space Management ASSM)
dba_segments.blocks = dba_tables.blocks + dba_tables.empty_blocks
本地管理表空间(Locally Managed Tablespace )
dba_segments.blocks = dba_tables.blocks + dba_tables.empty_blocks+ 1(SEGMENT HEADER BLOCK)
DBA_SEGMENTS.BLOCKS holds the total number of blocks allocated to the table.
DBA_TABLES.BLOCKS holds the total number of blocks allocated for data.
DBA_SEGMENTS中的blocks表示分配给表的存储空间,而DBA_TABLES中blocks表示表中数据实际占有的存储空间。所以这个是有细微差别的。所以你如果要查表的实际占用大小,那么就要使用DBA_TABLES来查询。查看数据库中占用存储空间从大到小的所有表对象
SELECT SEGMENT_NAME TABLE_NAME
,SUM(BLOCKS) BLOCKS
,SUM(BYTES)/(1024*1024) "TABLE_SIZE[MB]"
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE='TABLE'
GROUP BY SEGMENT_NAME
ORDER BY BLOCKS DESC;
转自:http://www.cnblogs.com/kerrycode/p/4280404.html
使用sys帐号统计某个用户下的所有表的大小:
SELECT * FROM
(
SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 GB
FROM dba_SEGMENTS
WHERE OWNER = '用户名大写'
GROUP BY SEGMENT_NAME
ORDER BY 2 DESC
) b
WHERE b.segment_name IN (SELECT table_name FROM dba_tables WHERE OWNER='用户名大写')
Oracle 计算表占用空间大小的更多相关文章
- Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
--表名,表占用空间大小(MB),行数select table_name, round(num_rows * avg_row_len /1024/1024, 8) as total_len, num_ ...
- mysql查看数据库和表的占用空间大小
mysql查看数据库和表的占用空间大小 第一部分-任务 将线上db,导出后,导入到office db 一. 两种方案: 1,将数据直接从online-->office,通过mysqldump ...
- 快速查看SQL Server 中各表的数据量以及占用空间大小
快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(1 ...
- SQL查询表占用空间大小
SQL查询表占用空间大小. create table tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),inde ...
- MySQL查看表占用空间大小(转)
MySQL查看表占用空间大小(转) //先进去MySQL自带管理库:information_schema //自己的数据库:dbwww58com_kuchecarlib //自己的表:t_carmod ...
- 【转】Linux命令之查看文件占用空间大小-du,df
原文网址:http://blog.csdn.net/wangjunjun2008/article/details/19840671 du(disk usage),顾名思义,查看目录/文件占用空间大小 ...
- oracle 查询表的大小,表空间的使用情况,默认表空间
oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Na ...
- 查看oracle数据库的大小和空间使用情况
查看oracle数据库的大小和空间使用情况 (2012-06-19 14:44:30) 转载▼ 标签: 杂谈 分类: oracle 1.查看表空间的使用状况 SELECT upper(f.tables ...
- oracle初始安装大小
oracle初始安装大小 /ruiy/ocr/DBSoftware/app/oracle/ruiy/ocr/DBSoftware/app/oraInventory/ruiy/ocr/DBData/or ...
随机推荐
- URAL 1997 Those are not the droids you're looking for 二分图最大匹配
Those are not the droids you're looking for 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=1 ...
- Android Studio安装后提示No JVM installation found解决办法
Android Studio安装后提示No JVM installation found解决办法 问题描述:Android Studio安装完毕,打开时出现提示"No JVM install ...
- Ehcache缓存时间设置
timeToLiveSeconds和timeToIdleSecondstimeToLiveSeconds=x:缓存自创建日期起至失效时的间隔时间x:timeToIdleSeconds=y:缓存创建以后 ...
- python string和dict转换
字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, va ...
- StoryBoard学习(5):使用segue页面间传递数据
StoryBoard学习(5):使用segue页面间传递数据 函数: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sen ...
- HDU 4585 Shaolin(水题,STL)
Shaolin Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Sub ...
- Wix使用整理(一)
由于工作需要,学习了一段时间Wix,总算小有起色.鉴于国内Wix 的普及和使用有限,这里将个人遇到得问题和解决方案记录下来,以便交流和相互促进. Wix :全称 Windows Installer ...
- vc维的解释
在做svm的时候我们碰到了结构风险最小化的问题,结构风险等于经验风险+vc置信范围,当中的vc置信范围又跟样本的数量和模型的vc维有关,所以我们看一下什么是vc维 首先看一下vc维的定义:对一个指标函 ...
- [翻译] SoundManager 音频管理器
SoundManager 音频管理器 https://github.com/nicklockwood/SoundManager Purpose SoundManager is a simple cla ...
- Node.js:Web模块、文件系统
一.web模块 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议.HTML文档格式及URL,与客户端的网络 ...