一、查询表空间大小和使用情况
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;
分享到:
相关推荐
2. **使用DBMS_SPACE.TOTAL_SPACE**:这是一个Oracle提供的包,可以用来查询表空间中使用的空间大小。例如: ```sql SELECT DBMS_SPACE.TOTAL_SPACE('FILE_LOG') AS total_space; ``` 3. **使用DBMS_SPACE.COUNT...
在Oracle数据库管理中,了解各个表所占用的空间大小对于优化存储、提升系统性能以及合理规划资源分配具有重要意义。本文将详细介绍如何通过SQL语句查询Oracle数据库中特定用户的所有表所占用的空间大小。 #### 1. ...
### Oracle 查看表空间表信息 在Oracle数据库管理中,了解如何查看表空间表信息是一项重要的技能。这有助于DBA(数据库管理员)或开发人员更好地理解数据库结构、优化查询性能以及进行必要的维护工作。 #### 标题...
- **数据文件**(Data File):表空间的具体物理实现,每个表空间至少包含一个数据文件。 - **段**(Segment):表空间中分配给特定数据库对象(如表、索引等)的一组连续或非连续的存储空间。 - **区**(Extent):...
除了查看表空间级别的使用情况外,有时还需要知道具体到每个段的大小。这可以通过以下SQL语句实现: ```sql SQL> select segment_name, sum(bytes)/1024/1024 as size_mb 2 from user_extents 3 group by segment...
- **查询目的**:此脚本用于查看每个表空间的定义大小(即分配给该表空间的数据文件总大小)、已使用大小以及使用百分比。 - **查询方法**: - 第一个子查询(`t1`):通过`dba_extents`视图获取每个表空间的已使用...
1. **占用空间(M)**:计算公式为`(blocks * 8) / 1024`,其中8是因为每个数据块默认大小为8KB,然后除以1024转换成MB。 2. **实际使用空间(M)**:计算公式为`(num_rows * avg_row_len / 1024 / 1024)`,表示根据当前...
3. **空间占用统计**:`BYTES`列显示了每个表或索引所占用的空间大小。 通过以上脚本,您可以有效地监控Oracle数据库中的表空间状态,及时发现并解决可能出现的问题,从而保证数据库系统的稳定性和性能。
首先,临时表空间是每个用户在Oracle数据库中进行操作时的默认工作区域。当用户进行如大型查询、创建索引或执行联接查询等涉及排序操作时,系统会自动在临时表空间中分配内存来存储中间结果。这是因为这些操作通常...
这个查询返回每个表空间的名称及其总大小(以MB为单位)。`dba_tablespaces`视图包含所有表空间的信息,而`dba_data_files`视图包含所有数据文件的信息。 2. **查看表空间物理文件的名称及大小**: ```sql ...
#### 二、查询表空间占用情况 了解表空间的使用情况对于维护数据库健康至关重要。Oracle提供了多种方法来查询表空间的使用状况: ##### SQL 查询语句 ```sql SELECT a.tablespace_name, a.bytes / 1024 / 1024 ...
这段复杂的SQL查询主要用于全面了解每个表空间的使用情况,包括表空间名称、大小、已使用的空间量、使用率以及剩余空间等。对于快速定位空间紧张的表空间非常有效。 ##### 8. 查询指定表空间的数据文件信息: ```...
每个Oracle数据库至少包含一个系统表空间(SYSTEM),用于存储系统数据和默认用户对象。 - 数据文件(Datafile)是实际物理存储介质,它们存储表空间内的数据块。 2. **表空间回收的目的** - 当表空间的空间被...
` 此查询可以查看表所占用的存储空间详情。 ### 五、索引 - **`SELECT * FROM dba_indexes;`**:列出数据库中的所有索引,包括主键索引,有助于理解数据的访问路径。 - **`SELECT * FROM dba_ind_columns;`**:...
- **表空间(Tablespace)**:表空间是Oracle数据库中的最高级逻辑存储单元,每个表空间由一个或多个数据文件组成,用于存储数据库中的对象。 - **数据文件(Datafile)**:每个表空间至少包含一个数据文件,这些...
以下查询返回每个表的总行数、原始数据大小、压缩后的数据大小以及压缩率: ```sql select sum(rows) as row, -- 总行数 formatReadableSize(sum(data_uncompressed_bytes)) as ysq, -- 原始大小 ...
- 设置合理的排序区域大小:通过调整初始化参数“SORT_AREA_SIZE”和“SORT_AREA_RETAINED_SIZE”,可以有效控制每个会话使用临时表空间的大小,防止临时表空间的过度占用。 - 监控临时表空间的使用:通过数据库的...
要查看整个表空间的剩余空间以及每个文件的详细信息,可以使用以下两个查询之一: 查询1: ```sql select b.file_id 文件ID, b.tablespace_name 表空间, b.file_name 物理文件名, b.bytes 总字节数, (b.bytes - ...
此查询显示每个临时表空间的使用情况,包括已用空间、总空间以及剩余空间的比例。 #### 八、查找高消耗资源的 SQL 语句 ```sql SELECT se.username, se.sid, su.extents, su.blocks * TO_NUMBER(RTRIM(p.value))...