Oracle磁盘空间使用统计
[日期:2011-02-03] 来源:Linux时代 作者:AMD
对于大型数据库,Oracle占用的磁盘空间非常大,掌握数据库中那些用户、表占用了多杀磁盘空间,以及增长情况,可以方便日后对磁盘系统进行维护和扩充。
对Oracle磁盘空间使用情况,可以分为按照表空间、用户或者表来进行统计。
(一)、表空间
计算表空间的剩余大小
select A.TABLESPACE_NAME,A.BYTES/(1024*1024*1024) "SPACE(G)",
C.BYTES/(1024*1024) "FREE SPACE(M)",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=C.TABLESPACE_NAME;
或者
select tablespace_name, sum(bytes)/(1024*1024*1024) "SPACE(G)"
from dba_free_space
group by tablespace_name;
(二)、用户
计算每个用户占用的磁盘空间
select owner,sum(bytes)/1024/1024/1024 "Space(G)"
from dba_segments
group by owner
order by 2;
计算某个用户占用的磁盘空间
select owner,sum(bytes)/1024/1024/1024 "Space(G)"
from dba_segments
where owner='LIAOJL'
group by owner;
(三)、表
Oracle都是以段为存储的,segment_name包含了表、索引、回滚段等,所以在dba_extents,dba_segments都可以找到占用空间大小的信息。
select sum(bytes)/1024/1024 "Space(M)"
from dba_extents
where owner='LIAOJL' and segment_name='STUDENTS';
dba_segments也可以计算表的大小:
select segment_name,bytes/1024/1024 "Space(MB)"
from dba_segments
where SEGMENT_TYPE='TABLE' and segment_name=upper('你要查找的表的名字');
当时上面的写法不完全正确,当表是分区表,dba_segments有多条信息,可改成:
select segment_name,sum(bytes)/1024/1024 "Space(MB)"
from dba_segments
where segment_name=upper('你要查找的表的名字');
上述方法对于一个很大的数据库,SQL语句执行起来会很慢,而且消耗数据库资源。Oracle支持对表进行分析,执行分析表操作后可以在dba_tables等系统表中查询表大小、行数等信息,不过这些信息不是实时更新的,可以在数据库空闲时,通过计划任务来更新。
分析SQL方法:
analyze table tab_name compute statistics;
表太大的话可以执行:
analyze table tab_name estimate statistics;
转载之:http://www.codesky.net/article/201201/166721.html
分享到:
相关推荐
在优化数据库磁盘IO时,需要监控数据库的性能,检查系统的I/O问题,使用V$FILESTAT确定oracle文件I/O的进程,分布I/O减少磁盘竞争,避免动态空间管理,确定动态扩展,分配分区,避免回滚段的动态空间管理,减少迁移...
oracle磁盘空间不足 ORA-00257 通过LVM来扩展
标题中提到的知识点是关于Oracle数据库数据文件磁盘组新增磁盘空间操作,在Linux和AIX操作系统版本下的具体实现方法。Oracle数据库中使用自动存储管理(Automatic Storage Management,ASM)来管理数据文件、重做...
ORACLE表空间大小统计语句,比较详细的。。。。
使用管道可以将备份文件分成多个小文件,以便在磁盘空间不足时进行备份。例如,可以使用以下命令创建管道: exp jtkg/Jtkg_2017 owner=jtkg rows=y indexes=y compress=n buffer=65536feedback=100000 volsize=0...
- **创建 ASM 磁盘**: 在第一个节点上使用 Oracle ASM 的脚本或命令行工具创建磁盘实例,例如:`/etc/init.d/oracleasm createdisk VOLDISK7 /dev/sddlmax1`。 - **查看 ASM 磁盘列表**: 使用 `listdisks` 命令查看...
### Oracle12c 实战ASM磁盘组管理 #### 知识点概述 本文将详细介绍Oracle12c中关于ASM(Automatic Storage Management)磁盘组管理的关键知识点,包括磁盘组属性的理解与配置、创建磁盘组的过程及注意事项。 #### ...
查询oracle表空间使用情况,表空间文件详情,创建或者变更表空间大小
当现有的ASM磁盘组无法满足存储需求时,可以通过添加新的磁盘来扩展ASM磁盘组的空间。本文档提供了一个标准的ASM磁盘组扩容方案,该方案已经在多个生产环境中得到验证和应用。 #### 目标环境 本方案适用于Oracle ...
在Oracle数据库管理系统中,查询表以及统计数据库的使用情况是一项关键任务,有助于管理员监控资源使用状况、优化性能并规划存储。本文将深入探讨如何查询Oracle表空间的使用情况,以及这个过程中的重要知识点。 ...
### ORACLE ASM添加磁盘操作步骤详解 #### 一、概述 在Oracle Automatic Storage Management (ASM)环境中,正确地管理磁盘组对于确保数据的安全性和提高系统的可用性至关重要。不恰当的磁盘添加操作可能会导致数据...
3.8 解决问题由于磁盘组损坏,所以只能重建磁盘组,然后使用 OCR 备份对 OCR 进行还原 3.9 停止两个节点的 HAS 资源 本文解决了 Oracle RAC 环境中的磁盘组故障问题,通过对问题的分析和解决,文章为读者提供了一...
通过表空间,可以控制用户对磁盘空间的使用,限制用户可以使用的磁盘空间大小,避免硬盘空间耗竭。 一、表空间的重要性 在大型数据库应用中,控制用户对磁盘空间的使用是非常重要的。表空间可以实现这个目的,限制...
oracle表空间不足报错的解决 。。。。。。。。。。。。。。。。。。。。。。
### Oracle 不使用 OracleASM 的包配置 ASM 磁盘配置方法 #### 概述 在 Oracle 数据库系统中,自动存储管理(ASM)是用于管理数据库文件的一种高性能、高可用性的解决方案。通常情况下,ASM 依赖于 Oracle 提供的 ...
在部分内容中提到了创建新的表空间以及对现有表空间进行扩展的操作,这些步骤有助于改善Oracle数据库的查询统计性能: ```sql -- 创建表空间 CREATE TABLESPACE WXGL_DATA1 DATAFILE 'WXGL_DATA1.ORA' SIZE 500M ON...
Oracle 数据库备份存在磁盘空间不足的问题是备份过程中常见的问题,但通过创建一个脚本程序和使用 exp 命令,可以解决这个问题。同时,我们也需要注意磁盘空间的使用情况,以避免磁盘空间不足的问题。
在创建表空间和用户的过程中,管理员还需要关注Oracle的文件路径和文件系统的管理,确保数据库文件存储在适当的磁盘上,以优化性能并防止磁盘空间耗尽的问题。同样需要注意的是,这些操作应由具有相应权限的数据库...
2. **磁盘管理**:合理规划磁盘空间,避免单个磁盘空间不足。 3. **数据迁移**:实现数据的物理位置转移,便于数据备份或迁移至更高性能的存储设备。 #### 操作: 1. **增加数据文件**:使用`ALTER TABLESPACE ADD ...
oracle中 undotbs文件过大导致oracle操作过慢 通过新建undotbs文件 并指定到新的undotbs文件来进行处理