Oracle SQL查询实用技巧与示例

需积分: 9 1 下载量 85 浏览量 更新于2024-07-27 收藏 214KB PDF 举报
"这篇资料主要介绍了Oracle数据库中的常用SQL查询命令,包括查看表空间信息、回滚段信息、控制文件和日志文件等关键数据的查询方法。" 在Oracle数据库管理中,SQL查询命令是日常操作的核心部分。以下是一些Oracle SQL查询的经典示例: 1. 查看表空间的名称及大小: 这个查询用于获取Oracle数据库中所有表空间的名称以及它们占用的总大小(以MB为单位)。通过JOIN `dba_tablespaces` 和 `dba_data_files` 表,可以获取每个表空间及其对应的物理文件大小。 ```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. 查看表空间物理文件的名称及大小: 这个查询显示每个表空间内所有数据文件的名称、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用于存储事务回滚信息的结构。这个查询展示了回滚段的名称、所属表空间、状态以及初始和最大扩展大小。 ```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. 查看日志文件: 日志文件用于记录数据库的事务信息。这个查询列出所有在线的日志文件成员。 ```sql SELECT member FROM v$logfile; ``` 6. 查看表空间的使用情况: 查询表空间的已使用、剩余空间及使用百分比。 ```sql SELECT SUM(bytes) / (1024*1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name; -- 或者更详细的信息,包括总空间、已使用空间、剩余空间和使用百分比 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 = ... ``` 了解并熟练掌握这些SQL查询命令对于Oracle数据库管理员来说至关重要,它们可以帮助监控数据库健康状况、优化性能、管理和规划存储。确保定期执行这些查询以确保数据库的稳定运行。