这里写目录标题
- 1 视图种类和名称
- 1.1 系统状态监控类
- 1.2 内存监控类
- 1.3 会话,锁,事物类
- 1.4 等待事件类
- 1.5 sql历史类
- 1.6 配置文件类
- 2 视图用法
- 2.1.v$BUFFERPOOL
- 2.2.v$CACHEITEM
- 2.3.v$CACHEPLN
- 2.4.v$CKPT_HISTORY
- 2.5.v$DATAFILE
- 2.6.v$DATABASE
- 2.7.V$DICT_CAHCE
- 2.8.V$INSTANCE
- 29.V$IOCK
- 2.10.V$PRE_RETURN_HISTORY
- 2.11.V$RESOURCE_LIMIT
- 2.12.V$RLOG
- 2.13.V$SESSION_HISTORY
- 2.14.V$SQL_HISTORY
- 2.15.V$SYSSTAT
- 2.16.V$THREADS
- 2.17.V\$DM_INI,V\$DM_ARCH_INI,V$DM_MAL_INI,v\$PARAMETER
- 2.18.V$DANGER_EVENT
- 2.19.V\$SQLTEXT,V$SQL_PLAN
- 2.20.V$EVENT_NAME
- 2.21.V\$SESSION_EVENT,V$SYSTEM_EVENT
- 2.22.V\$LONG_EXEC_SQLS,V$SYSTEM_LONG_EXEC_SQLS
- 2.23.V$SORT_HISTORY
- 2.24.v$MEM_POOL
1 视图种类和名称
1.1 系统状态监控类
v$sysstat,v$datafile,v$rlog,v$ckpt_history,v$database,v$instance,V$resource_limit
,v$danger_event
1.2 内存监控类
V$bufferpool,v$cacheitem,v$cachepln,v$dict_cache,v$mem_pool。
1.3 会话,锁,事物类
V$sessions,v$session_history,v$lock,v$deadlock_history,v$trx,v$trxwait。
1.4 等待事件类
V$event_name,v$session_wait_history,v$system_event,v$session_event。
1.5 sql历史类
V$sql_history,v$long_exec_sqls,v$system_long_exec_sqls,v$sort_history,v$pre_ret
urn_history,v$runtime_err_history,v$sqltext。
1.6 配置文件类
V$dm_ini,v$dm_arch_ini,v$parameter,v$dm_mal_ini。
2 视图用法
2.1.v$BUFFERPOOL
用法:v$bufferpool常用来查看数据库缓冲池的命中率,通过查看各个缓存池的命中率来
决定是否需要调整缓存池大小。
可以使用如下sql语句查看命中率:
select
name as 缓冲池名称 ,
sum(page_size)/1024 as 缓冲池大小(M),
sum(rat_hit)/count(*) as 命中率
from
v$bufferpool
group by
name;
2.2.v$CACHEITEM
用法:在没有使用结果缓存集的情况下,v$cacheitem用于记录缓存的sql和执行计划。
由于sql缓存池可以最大动态的增长至CACHE_POOL_SIZE的三倍大小,所以如果
CACHE_POOL_SiZE设置不合理,可能会造成使用较多的虚拟内存,从而导致较多的内
存页pagein/out,增加较大的系统负担。可以使用该视图动态的观察sql缓存池的使用情
况。
可以使用如下sql语句:
select sum(item_size)/1024/1024 as sql缓存池大小(M) from v$cacheitem;
2.3.v$CACHEPLN
用法:在有些版本中,在sql执行计划错误的情况下,如果对表以及列都收 集过统计信
息,并且尝试使用hint提示干预执行计划,但是有些sql的执行计划 依然没有改变,可以
利用该视图找到sql语句所对应的sql执行计划地址,使 用SP_CLEAR_PLAN_CACHE清除
sql缓存池中的执行计划,确保sql语句下次执行时可以重新解析。
select
cache_item as 执行计划地址,
sqlstr as sql文本
from
v$cachepln
where
sqlstr like '%select * from a%';
call SP_CLEAR_PLAN_CACHE(1407249592475);
2.4.v$CKPT_HISTORY
用法:该视图记录了检查点的详细信息,可以直接查看该视图确认检查点 是否正常。
2.5.v$DATAFILE
用法:该视图记录了数据库文件的使用状态,通常可以和v$TABLESPACE视图进行关联查询。
select
b.name as 表空间名称 ,
b.file_num as 数据文件个数 ,
a.path as 数据库文件路径 ,
a.total_size * a.page_size/1024/1024 as 整个数据文件大小(M),
a.free_size* a.page_size/1024/1024 as 数据文件空闲大小(M),
decode(a.auto_extend, 1, '自动扩展打开', '自动扩展关闭')
from
v$datafile a,
v$tablespace b
where
a.group_id=b.id;
2.6.v$DATABASE
用法:用于查看数据库相关信息,类似是否归档,数据库名称,创建时间,数据库状态等等。
select
nameas 数据库名称,
create_timeas 创建时间 ,
decode (arch_mode, 'Y', '是', '否')as 是否归档 ,
decode (status$, '1', '启动', '2', '启动,redo完成', '3', 'MOUNT', '4', '打开',
'5', '挂起', '6', '关闭') as 数据库状态,
decode (ROLE$, '0', '普通', '1', '主机', '2', '备
机') as 数据库模式
from
v$database;
2.7.V$DICT_CAHCE
用法:该视图用于观察字典缓存池的信息,通过观察该视图可以动态的观测DICT_BUF_SIZE参数如何
设置较为合理。
select
total_size/1024/1024 as 初始化大小(M),
used_size /1024/1024 as 使用大小(M) ,
dict_num as 缓存字典数量
from
v$dict_cache;
2.8.V$INSTANCE
用法:用于查看数据库实例相关信息,类似数据库版本,主机名,实例名称,实例状态等等。
29.V$IOCK
用法:用于记录数据库中锁信息。经常与v$SESSIONS关联查看数据库中阻塞信息。
V$LOCK与v$SESSIONS组合查询阻塞会话
select
s.sess_idas 会话号 ,
s.sql_textas sql语句 ,
s.stateas 会话状态 ,
s.user_nameas 会话用户 ,
s.create_time as 会话创建时间,
clnt_ip as 会话IP ,
l.trx_idas 事物ID ,
l.table_idas 表号 ,
decode(l.blocked, 1, '被阻塞', '未阻塞')
from
v$sessions s,
v$lock l
where
s.trx_id=l.trx_id;
2.10.V$PRE_RETURN_HISTORY
用法:该视图用于记录返回大量结果集的查询语句的历史信息。同时该视图可以与
v$SESSION_HISTORY等视图组合使用。
2.11.V$RESOURCE_LIMIT
用法:该视图用于查看用户空间的限制信息。
select
name as 用户名 ,
space_limit*32/1024 as 空间限制大小(M),
space_limit*32/1024 as 空间使用大小(M)
from
v$resource_limit;
2.12.V$RLOG
用法:该视图用于记录日志信息,包括LSN号和日志使用情况等等。在主备环境中可以查看该视图确
认主机和备机是否一致。
2.13.V$SESSION_HISTORY
用法:用于记录数据库中的会话历史信息。在本视图中只存放v$SESSION的部分信息,可以通过与
v$SQL_HISTORY关联找出对应sql的session信息。
2.14.V$SQL_HISTORY
用法:用于记录最近执行的10000条sql语句,该视图同时包括正在执行的 sql语句。该视图可以用于
定位可能出现问题的sql语句,该视图记录了sql执行时间,物理读,逻辑读等关键信息。
select
top_sql_text as sql文本 ,
start_time as 开始时间 ,
time_used/1000/1000 as 执行时间(毫秒),
n_logic_read as 逻辑读数量 ,
n_phy_read as 物理读数量 ,
affected_rows as 影响行数
from
v$sql_history
order by
time_used desc,
n_logic_read desc;
2.15.V$SYSSTAT
用法:用于记录数据库的运行相关状态的信息,主要用于观察解析类统计信息,物理读,逻辑读,内存
池使用情况,数据库运行各个阶段占用时间(类似cpu time,parse time等等),通过分析这些信息
来诊断问题并对数据库有个初步的判断。
2.16.V$THREADS
用法:该视图用于查看数据库中的线程。在新版本中v$sessions视图中增加了thrd_id,配合使用操作
系统top –H –ppid命令可以实现快速定位异常会话的功能,并可以使用sp_close_session()或者操作
系统killthrd_id,杀掉异常会话。
2.17.V$DM_INI,V$DM_ARCH_INI,V$DM_MAL_INI,v$PARAMETER
用法:用于查看数据库相关配置(INI,ARCH_INI,MAL_INI)信息。
2.18.V$DANGER_EVENT
用法:用于查看数据库中危险操作发生时间和用户以及相关操作信息,比如truncate操作。
2.19.V$SQLTEXT,V$SQL_PLAN
用法:用于显示sql缓冲池缓存的sql文本和执行计划。
2.20.V$EVENT_NAME
用法:用于查看DM7所支持的所有等待事件。
2.21.V$SESSION_EVENT,V$SYSTEM_EVENT
用法:用于统计数据库中系统或会话级别的等待事件。
select
event as 等待事件名称 ,
total_waits as 等待事件发生次数 ,
time_waited_micro /1000 as 等待事件总用时(ms),
average_wait_micro/1000 as 平均等待时间(ms)
from
v$system_event
order by
average_wait_micro desc;
2.22.V$LONG_EXEC_SQLS,V$SYSTEM_LONG_EXEC_SQLS
用法:用于记录数据库中最近10000条执行时间长的sql。
2.23.V$SORT_HISTORY
用法:用于记录排序较多的sql语句,可以使用该视图定位异常排序的sql。
2.24.v$MEM_POOL
用法:用于监控数据库中各个内存组件使用状况。
select
name as 内存池名称 ,
org_size /1024/1024 as 参数文件配置大小(M),
reserved_size/1024/1024 as 实际使用大小(M)
from
v$mem_pool
order by
reserved_size desc;