有用的v$视图脚本


1、基本的数据库信息
版本信息:
select * from v$version;
数据库信息:
Select * from v$database;

2、自动工作量仓库自动工作量(AWR)的基本信息
AWR 使用多少空间?
Select occupant_name, occupant_desc, space_usage_kbytes
from v$sysaux_occupants
where occupant_name like '%AWR%';

系统上最原始的 AWR 信息是什么?
select dbms_stats.get_stats_history_availability from dual;

什么是 AWR 信息的保留期?
select dbms_stats.get_stats_history_retention from dual;

将 AWR 信息的保留期更改为 15 天?
EXEC dbms_stats.alter_stats_history_retention(15);

3、基本的许可信息
select * from v$license;


4、数据库中已安装的产品项
select * from v$option;

5、内存分配摘要
select * from v$sga;

内存分配的细节
select * from v$sgastat;

6、V$PARAMETER中发现init.ora 的设置
select * from v$parameter;

7、测定数据的命中率
select 1 - (sum(decode(name, 'physical reads', value, 0)) /
(sum(decode(name, 'db block gets', value, 0)) +
(sum(decode(name, 'consistent gets', value, 0))))) "Read Hit Ratio"
from v$sysstat;


测定数据字典的命中率
select sum(gets),
sum(getmisses),
(1 - (sum(getmisses) / (sum(gets) + sum(getmisses)))) * 100 HitRate
from v$rowcache;

测定共SQL和 PL/SQL的命中率
select sum(pins) "Executions",
sum(pinhits) "Hits",
((sum(pinhits) / sum(pins)) * 100) "PinHitRatio",
sum(reloads) "Misses",
((sum(pins) / (sum(pins) + sum(reloads))) * 100) "RelHitRatio"
from v$librarycache;


通过V$SQLAREA查找有问题的查询
select b.username username,
a.disk_reads reads,
a.executions exec,
a.disk_reads / decode(a.executions, 0, 1, a.executions) rds_exec_ratio,
a.command_type,
a.sql_text Statement
from v$sqlarea a, dba_users b
where a.parsing_user_id = b.user_id
and a.disk_reads > 10000
order by a.disk_reads desc;

检查用户的当前操作及其使用的资源
select a.sid, a.username, s.sql_text
from v$session a, v$sqltext s
where a.sql_address = s.address
and a.sql_hash_value = s.hash_value
order by a.username, a.sid, s.piece;


哪些用户执行了大量的物理磁盘和内存读操作
select a.username,
b.block_gets,
b.consistent_gets,
b.physical_reads,
b.block_changes,
b.consistent_changes
from v$session a, v$sess_io b
where a.sid = b.sid
order by a.username;


查找用户正在访问的对象
select a.sid, a.username, b.owner, b.object, b.type
from v$session a, v$access b
where a.sid = b.sid;


确定锁定问题
select /*+ ordered */
b.username, b.serial#, d.id1, a.sql_text
from v$lock d, v$session b, v$sqltext a
where b.lockwait = d.kaddr
and a.address = b.sql_address
and a.hash_value = b.sql_hash_value;

select /*+ ordered */
a.serial#, a.sid, a.username, b.id1, c.sql_text
from v$lock b, v$session a, v$sqltext c
where b.id1 in (select /*+ ordered */
distinct e.id1
from v$lock e, v$session d
where d.lockwait = e.kaddr)
and a.sid = b.sid
and c.hash_value = a.sql_hash_value
and b.request = 0;

select /*+ ordered */
username,
v$lock.sid,
trunc(id1 / power(2, 16)) rbs,
bitand(id1, to_number('ffff', 'xxxx')) + 0 slot,
id2 seq,
lmode,
request
from v$lock, v$session
where v$lock.type = 'TX'
and v$lock.sid = v$session.sid;


关闭有问题的会话
select username, sid, serial#, program, terminal
from v$session;

alter system kill session '11,18';


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值