Oracle数据库经典SQL查询技巧

需积分: 9 1 下载量 116 浏览量 更新于2024-07-28 收藏 208KB DOC 举报
"Oracle常用经典SQL查询" 在Oracle数据库管理中,SQL查询是日常运维和性能优化的关键工具。以下是一些常用的SQL查询示例,用于获取关于数据库的各种信息: 1. 查看表空间名称及大小: 此查询用于显示所有表空间的名称及其占用的磁盘空间(以MB为单位)。通过`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. 查看表空间物理文件的名称及大小: 这个查询列出每个表空间中数据文件的详细信息,包括文件名和大小(以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. 查看回滚段名称及大小: 回滚段用于存储事务的回滚信息。此查询展示了回滚段的名称、所在表空间、状态以及初始和下一个扩展的大小(以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. 查看控制文件: 控制文件记录了数据库的重要元数据,如表空间和数据文件的位置。此查询简单地列出所有控制文件的名称。 ```sql SELECT name FROM v$controlfile; ``` 5. 查看日志文件: 数据库的日志文件用于记录事务,是恢复和归档的关键。这个查询显示了当前的重做日志文件成员。 ```sql SELECT member FROM v$logfile; ``` 6. 查看表空间的使用情况: 查询表空间的总空间、已使用空间、剩余空间以及使用率和空闲率。 ```sql SELECT A.TABLESPACE_NAME, A.BYTES_TOTAL AS TOTAL_SPACE, B.BYTES_USED AS USED_SPACE, C.BYTES_FREE AS FREE_SPACE, (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; ``` 这些查询对于监控Oracle数据库的状态、优化存储分配和追踪性能问题至关重要。了解并熟练使用这些SQL语句可以帮助DBA更好地管理数据库资源,确保其高效运行。