`

ORACLE查询表空间大小以及每个表占用空间大小

阅读更多

一、查询表空间大小和使用情况

select b.file_name 物理文件名,
       b.tablespace_name 表空间,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
 group by b.tablespace_name, b.file_name, b.bytes
 order by b.tablespace_name

 

二、 查询每个表占用空间大小

SELECT 'select sum(bytes) FROM dba_segments WHERE owner ='|| '"TESTBAR"'||' AND segment_type ='|| '"TABLE"'||' AND segment_name = "'|| table_name||'" ;' from user_tables;
错误的,对于oracle而言,双引号
要用单引号,可用
可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'
或者用两个单引号表示一个
or insert into t values('I''m'); -- 两个''可以表示一个'
SELECT 'select segment_name,sum(bytes) FROM dba_segments WHERE owner ='|| chr(39)||'TESTBAR'||chr(39)||' AND segment_type ='||chr(39)||'TABLE'||chr(39)||' AND segment_name = '|| chr(39)||table_name||chr(39)||';' from user_tables;
注意,对于分区表要采用"TABLE PARTITION"方式
SQL> set linesize 300
SQL> set head off
SQL> spool 1.sql
exec statement
SQL>spool off
处理空行问题:
采用excel的自动筛选进行空行过滤!以及计算空间总和。
实用考虑:
(1) 产生行一例
select 'SELECT sum(bytes)/1024/1024 Mbytes FROM user_segments WHERE segment_type = '||chr(39)||'TABLE'||chr(39)||' AND segment_name = '||chr(39)||segment_name||chr(39)||';' from user_segments where segment_type='TABLE';
(2)、查看用户表、索引、分区表占用空间
select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments group by segment_name;
(3)、表占用空间
select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments where segment_type='TABLE' group by segment_name;
(4)、索引占用空间select segment_name ,sum(bytes)/1024/1024 from user_segments where segment_type ='INDEX' group by segment_name;
(5)、分区表TABLE PARTITION占用空间
select segment_name,sum(bytes)/1024/1024 Mbytes from user_segments where segment_type='TABLE PARTITION' group by segment_name;

分享到:
评论

相关推荐

    查询一个Oracle表所占的物理空间大小

    2. **使用DBMS_SPACE.TOTAL_SPACE**:这是一个Oracle提供的包,可以用来查询表空间中使用的空间大小。例如: ```sql SELECT DBMS_SPACE.TOTAL_SPACE('FILE_LOG') AS total_space; ``` 3. **使用DBMS_SPACE.COUNT...

    Oracle查看各表占用空间

    在Oracle数据库管理中,了解各个表所占用的空间大小对于优化存储、提升系统性能以及合理规划资源分配具有重要意义。本文将详细介绍如何通过SQL语句查询Oracle数据库中特定用户的所有表所占用的空间大小。 #### 1. ...

    oracle查看表空间表信息

    ### Oracle 查看表空间表信息 在Oracle数据库管理中,了解如何查看表空间表信息是一项重要的技能。这有助于DBA(数据库管理员)或开发人员更好地理解数据库结构、优化查询性能以及进行必要的维护工作。 #### 标题...

    Oracle 表空间 收缩

    - **数据文件**(Data File):表空间的具体物理实现,每个表空间至少包含一个数据文件。 - **段**(Segment):表空间中分配给特定数据库对象(如表、索引等)的一组连续或非连续的存储空间。 - **区**(Extent):...

    oracle表空间查看

    除了查看表空间级别的使用情况外,有时还需要知道具体到每个段的大小。这可以通过以下SQL语句实现: ```sql SQL> select segment_name, sum(bytes)/1024/1024 as size_mb 2 from user_extents 3 group by segment...

    查看表空间大小 sql 脚本

    - **查询目的**:此脚本用于查看每个表空间的定义大小(即分配给该表空间的数据文件总大小)、已使用大小以及使用百分比。 - **查询方法**: - 第一个子查询(`t1`):通过`dba_extents`视图获取每个表空间的已使用...

    oracle查询表碎片

    1. **占用空间(M)**:计算公式为`(blocks * 8) / 1024`,其中8是因为每个数据块默认大小为8KB,然后除以1024转换成MB。 2. **实际使用空间(M)**:计算公式为`(num_rows * avg_row_len / 1024 / 1024)`,表示根据当前...

    oracle数据库表空间监控实用脚本

    3. **空间占用统计**:`BYTES`列显示了每个表或索引所占用的空间大小。 通过以上脚本,您可以有效地监控Oracle数据库中的表空间状态,及时发现并解决可能出现的问题,从而保证数据库系统的稳定性和性能。

    Oracle 临时表空间使用注意

    首先,临时表空间是每个用户在Oracle数据库中进行操作时的默认工作区域。当用户进行如大型查询、创建索引或执行联接查询等涉及排序操作时,系统会自动在临时表空间中分配内存来存储中间结果。这是因为这些操作通常...

    Oracle 查看表空间的大小及使用情况sql语句

    这个查询返回每个表空间的名称及其总大小(以MB为单位)。`dba_tablespaces`视图包含所有表空间的信息,而`dba_data_files`视图包含所有数据文件的信息。 2. **查看表空间物理文件的名称及大小**: ```sql ...

    oracle数据库扩展表空间代码

    #### 二、查询表空间占用情况 了解表空间的使用情况对于维护数据库健康至关重要。Oracle提供了多种方法来查询表空间的使用状况: ##### SQL 查询语句 ```sql SELECT a.tablespace_name, a.bytes / 1024 / 1024 ...

    Oracle数据库表空间巡检指令

    这段复杂的SQL查询主要用于全面了解每个表空间的使用情况,包括表空间名称、大小、已使用的空间量、使用率以及剩余空间等。对于快速定位空间紧张的表空间非常有效。 ##### 8. 查询指定表空间的数据文件信息: ```...

    ORACLE表空间的回收脚本.rar

    每个Oracle数据库至少包含一个系统表空间(SYSTEM),用于存储系统数据和默认用户对象。 - 数据文件(Datafile)是实际物理存储介质,它们存储表空间内的数据块。 2. **表空间回收的目的** - 当表空间的空间被...

    oracle系统表查询

    ` 此查询可以查看表所占用的存储空间详情。 ### 五、索引 - **`SELECT * FROM dba_indexes;`**:列出数据库中的所有索引,包括主键索引,有助于理解数据的访问路径。 - **`SELECT * FROM dba_ind_columns;`**:...

    oracle新手入门指导之一——数据库表空间知识.txt

    - **表空间(Tablespace)**:表空间是Oracle数据库中的最高级逻辑存储单元,每个表空间由一个或多个数据文件组成,用于存储数据库中的对象。 - **数据文件(Datafile)**:每个表空间至少包含一个数据文件,这些...

    5、ClickHouse查看数据库容量、表的指标、表分区、数据大小等

    以下查询返回每个表的总行数、原始数据大小、压缩后的数据大小以及压缩率: ```sql select sum(rows) as row, -- 总行数 formatReadableSize(sum(data_uncompressed_bytes)) as ysq, -- 原始大小 ...

    如何解决Oracle8i数据库临时表空间满的问题.pdf

    - 设置合理的排序区域大小:通过调整初始化参数“SORT_AREA_SIZE”和“SORT_AREA_RETAINED_SIZE”,可以有效控制每个会话使用临时表空间的大小,防止临时表空间的过度占用。 - 监控临时表空间的使用:通过数据库的...

    oracle扩展表空间方案

    要查看整个表空间的剩余空间以及每个文件的详细信息,可以使用以下两个查询之一: 查询1: ```sql select b.file_id 文件ID, b.tablespace_name 表空间, b.file_name 物理文件名, b.bytes 总字节数, (b.bytes - ...

    Oracle临时表空间处理.txt

    此查询显示每个临时表空间的使用情况,包括已用空间、总空间以及剩余空间的比例。 #### 八、查找高消耗资源的 SQL 语句 ```sql SELECT se.username, se.sid, su.extents, su.blocks * TO_NUMBER(RTRIM(p.value))...

Global site tag (gtag.js) - Google Analytics