续
常用字典:
v$开头
v$database数据库信息
v$datafile数据文件信息
v$controlfile控制文件信息
v$logfile重做日志信息
v$instance数据库实例信息
v$log日志组信息
v$loghist日志历史信息
v$sga数据库SGA信息
v$parameter初始化参数信息
v$process数据库服务器进程信息
v$bgprocess数据库后台进程信息
v$controlfile_record_section控制文件记载的各部分信息
v$thread线程信息
v$datafile_header数据文件头所记载的信息
v$archived_log归档日志信息
v$archive_dest归档日志的设置信息
v$logmnr_contents归档日志分析的DMLDDL结果信息
v$logmnr_dictionary日志分析的字典文件信息
v$logmnr_logs日志分析的日志列表信息
v$tablespace表空间信息
v$tempfile临时文件信息
v$filestat数据文件的I/O统计信息
v$undostatUndo数据信息
v$rollname在线回滚段信息
v$session会话信息
v$transaction事务信息
v$rollstat回滚段统计信息
v$pwfile_users特权用户信息
v$sqlarea当前查询过的sql语句访问过的资源及相关的信息
v$sql与v$sqlarea基本相同的相关信息
v$sysstat数据库系统状态信息
all_开头
all_users数据库所有用户的信息
all_objects数据库所有的对象的信息
all_def_audit_opts所有默认的审计设置信息
all_tables所有的表对象信息
all_indexes所有的数据库对象索引的信息
session_开头
session_roles会话的角色信息
session_privs会话的权限信息
index_开头
index_stats索引的设置和存储信息
伪表
dual系统伪列表信息
数据字典常用SQL查询
1)查看表空间的名称及大小
select t.tablespace_name,
round(sum(d.bytes/(1024*1024)),0) tbs_size
from dba_tablespaces t,
dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
若需要查看指定表空间的大小,则可以直接添加where条件指定,否则结果集是所有表空间。
2)查看表空间物理文件的名称及大小
select tablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3)查看表空间剩余空间大小
select tablespace_name,
round(sum(bytes) 1024 1024, 2) AS free_space,
count(*) AS extends,
sum(blocks) AS blocks
from dba_free_space
group by tablespace_name;
4)查看表空间使用率
SELECT total.tablespace_name,
Round(total.total, 2) AS Total_MB,
Round(total.total - free.free, 2) AS Used_MB,
Round(( 1 - free.free / total.total ) * 100, 2)
|| '%' AS Used_PCT
FROM (SELECT tablespace_name,
sum(bytes) / 1024 / 1024 AS free
FROM dba_free_space
GROUP BY tablespace_name) free,
(SELECT tablespace_name,
sum(bytes) / 1024 / 1024 AS total
FROM dba_data_files
GROUP BY tablespace_name) total
WHERE free.tablespace_name = total.tablespace_name;
5)查看控制文件
select name from v$controlfile;
6)查看日志文件
select member from v$logfile;
7)查看消耗资源最多的SQL
SELECT hash_value,
executions,
buffer_gets,
disk_reads,
parse_calls
FROM V$SQLAREA
WHERE buffer_gets > 10000000
OR disk_reads > 1000000
ORDER BY buffer_gets + 100 * disk_reads DESC;
8)捕捉运行很久的SQL
select username,
sid,
opname,
round(sofar*100 / totalwork,0) || '%' as progress,
time_remaining,
sql_text
from v$session_longops,
v$sql
where time_remaining <> 0
and sql_address = address
and sql_hash_value = hash_value;
9)查看回滚段名称及大小
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;
10)查看还没提交的事务
select * from v$locked_object;
select * from v$transaction;