Oracle经典SQL查询:表空间与文件管理

需积分: 9 1 下载量 72 浏览量 更新于2024-07-29 收藏 208KB DOC 举报
“Oracle常用经典SQL查询.doc”包含了多个在Oracle数据库管理中经常使用的查询语句,主要用于监控和分析数据库的表空间、数据文件、回滚段、控制文件以及日志文件的状态和使用情况。 1. 查看表空间的名称及大小 这个查询用于获取数据库中的所有表空间及其总大小(以MB为单位)。通过`dba_tablespaces`和`dba_data_files`两个系统视图联接,计算每个表空间占用的总字节数,并转换为易于理解的MB单位。 ```sql select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; ``` 2. 查看表空间物理文件的名称及大小 此查询展示了每个表空间下的数据文件(.dbf)的详细信息,包括表空间名、文件ID、文件名以及文件的总大小(以MB为单位)。 ```sql select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; ``` 3. 查看回滚段名称及大小 回滚段是Oracle用于存储事务回滚信息的数据结构。此查询提供了每个回滚段的名称、所在表空间、状态以及初始和最大扩展大小(以KB为单位)。 ```sql select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent, (next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name; ``` 4. 查看控制文件 控制文件是Oracle数据库的关键组件,记录了数据库的元数据信息。此查询用于显示当前控制文件的位置和名称。 ```sql select name from v$controlfile; ``` 5. 查看日志文件 日志文件用于记录数据库的所有更改,是保证数据完整性和恢复的重要部分。这个查询列出所有的在线redo日志文件成员。 ```sql select member from v$logfile; ``` 6. 查看表空间的使用情况 最后两个查询提供了表空间的使用率,包括已用空间、空闲空间以及使用百分比。第一个查询简单地计算每个表空间的总自由空间(以MB为单位)。 ```sql select sum(bytes)/(1024*1024) as free_space, tablespace_name from dba_free_space group by tablespace_name; ``` 第二个查询更详细,不仅显示了总大小、已用大小和空闲大小,还计算了使用和空闲的百分比。 ```sql SELECT A.TABLESPACE_NAME, A.BYTES TOTAL, B.BYTES USED, C.BYTES FREE, (B.BYTES * 100) / A.BYTES "%USED", (C.BYTES * 100) / A.BYTES "%FREE" FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME AND A.TABLESPACE_NAME = C.TABLESPACE_NAME; ``` 这些查询对于数据库管理员来说非常实用,可以帮助他们有效地监控和优化数据库性能,确保数据的正确存储和管理。