Oracle数据库经典SQL查询实战

需积分: 9 8 下载量 79 浏览量 更新于2024-12-16 收藏 208KB DOC 举报
"Oracle数据库系统中的一些常用且经典的SQL查询语句,涵盖了查看表空间、数据文件、回滚段、控制文件和日志文件等关键信息。这些查询可以帮助数据库管理员监控和管理数据库的存储资源。" 在Oracle数据库管理中,掌握一些基本的SQL查询对于维护数据库的健康运行至关重要。以下是对提供的查询语句的详细解释: 1. 查看表空间的名称及大小: ```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; ``` 这个查询将显示所有表空间的名称及其占用的总磁盘空间(以MB为单位)。通过`dba_tablespaces`和`dba_data_files`视图联接,可以获取每个表空间下的数据文件总大小。 2. 查看表空间物理文件的名称及大小: ```sql select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; ``` 此查询列出了每个表空间中所有数据文件的详细信息,包括文件ID、文件名以及文件的总大小(以MB为单位)。 3. 查看回滚段名称及大小: ```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. 查看控制文件: ```sql select name from v$controlfile; ``` 控制文件是Oracle数据库的关键组件,它包含了数据库的元数据。这个简单的查询可以列出所有的控制文件路径。 5. 查看日志文件: ```sql select member from v$logfile; ``` 这个查询用于显示所有redo log文件的成员,它们记录了数据库的事务信息。 6. 查看表空间的使用情况: ```sql -- 查询方式1 select sum(bytes)/(1024*1024) as free_space, tablespace_name from dba_free_space group by tablespace_name; -- 查询方式2 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_AVAILA, SYS.SM$TS_USEDB, SYS.SM$TS_FREEC WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; ``` 这两个查询提供了表空间的总大小、已使用空间、剩余空闲空间,以及使用率和空闲率的百分比。 了解并能够执行这些SQL查询是Oracle DBA日常工作中必不可少的技能,它们有助于实时监控数据库的状态,及时发现和解决问题,确保数据库高效、稳定地运行。