Oracle数据库经典SQL查询技巧
需积分: 9 128 浏览量
更新于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更好地管理数据库资源,确保其高效运行。
2009-07-22 上传
547 浏览量
2009-02-16 上传
196 浏览量
点击了解资源详情
126 浏览量
xmycw029
- 粉丝: 0
- 资源: 5