Oracle DBA:关键SQL查询示例

4星 · 超过85%的资源 需积分: 9 18 下载量 106 浏览量 更新于2024-07-31 收藏 174KB DOC 举报
"这篇资料主要介绍了Oracle数据库管理员(DBA)常用的SQL语句,包括查看表空间的名称和大小、表空间物理文件的信息、回滚段的状态和大小,以及查询回滚段中的事务和SQL语句,同时提供了查看控制文件和日志文件的方法。" 在Oracle数据库管理中,掌握一些基本的SQL查询对于DBA来说至关重要。以下是对这些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; ``` 这个查询将返回Oracle数据库中所有表空间的名称及其总大小(以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为单位)。通过`order by`语句,结果按照表空间名称排序。 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语句: ``` SQL> select d.sql_text, a.name from v$rollname a, v$transaction b, v$session c, v$sqltext d where a.usn = b.xidusn and b.addr = c.taddr and c.sql_address = d.address and c.sql_hash_value = d.hash_value and a.usn = 1; ``` 此查询可帮助你找到特定回滚段(根据`usn`参数调整)中的事务所对应的SQL语句。`v$rollname`、`v$transaction`、`v$session`和`v$sqltext`视图结合使用,提供了事务和SQL文本的相关信息。 5. 查看控制文件: ``` SQL> select * from v$controlfile; ``` 这个查询将显示数据库的控制文件详细信息,包括文件路径、文件大小等。 6. 查看日志文件: ``` SQL> col member form a50 SQL> select * from v$logfile; ``` 使用这个命令可以获取数据库的日志组和成员信息,包括日志文件的位置、状态等。 7. 查看当前SQL*PLUS用户的SID和SERIAL#: ``` SQL> select sid, serial# from v$session where username is not null; ``` 此查询显示当前登录的SQL*PLUS会话的系统标识符(SID)和序列号(SERIAL#)。 掌握这些SQL语句可以帮助DBA更好地监控和管理Oracle数据库,确保其稳定性和性能。通过这些查询,你可以对数据库的存储结构、回滚段使用、事务状态和日志文件有更深入的了解。