重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 297|回复: 0
打印 上一主题 下一主题

[Oracle] 如果快速判断oracle是否很慢

[复制链接]
跳转到指定楼层
楼主
发表于 2024-11-10 11:15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询数据库是否很慢
业务报过来,说数据库很慢,作为 DBA,怎么样知道数据库是不是很慢,然后如果慢,查出源头。

1>查询oracle目前等待次数做多的事件名
select event, count(1) from gv$session_wait group by event order by 2 desc  having count(1) >10;

select sid,username,sql_id,event  from v$session where wait_class !='Idle';


2>比如上面direct path read事件最多,根据事件查看sql_id:

select sw.p1,
       s.sql_id,
       count(*),
       (ratio_to_report(count(*)) over()) * 100 pct
  from v$session s, v$session_wait sw
where s.event like '%latch: cache buffers chains%'
   and s.sid = sw.sid
group by sw.p1, s.sql_id
order by count(*) desc;


3>根据sql 查看sql内容:

select sql_id,sql_text from v$sql where sql_id='3mg2pq789vdzg';


查询执行计划(查看内存中执行过的执行计划):
set linesize  10000
select * from table (dbms_xplan.display_cursor('b39dwjz0a404c' , 0, 'ALLSTATS LAST cost' ));


4>临时处理--kill掉操作系统进程

select 'kill -9  ' || pro.spid
  from v$session ses, v$process pro
where ses.paddr = pro.addr
   and ses.sid in (select sid
                     from v$session
                    where sql_id = '3mg2pq789vdzg'
                      and event = 'latch: cache buffers chains');
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-28 17:49 , Processed in 0.105477 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表