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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Oracle] Oracle 下检查当前 SQL 和等待事件

[复制链接]
跳转到指定楼层
楼主
发表于 7 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
-- 当前用于阻塞和等待会话的 SQL
SELECT
  s.sid,
  s.serial#,
  s.username,
  s.program,
  s.status,
  s.event,
  s.wait_time,
  s.seconds_in_wait,
  s.sql_id,
  sq.sql_text
FROM v$session s, v$sqlarea sq
WHERE s.sql_address = sq.address(+)
  AND s.sql_hash_value = sq.hash_value(+)
  AND (s.blocking_session IS NOT NULL
       OR s.sid IN (SELECT blocking_session FROM v$session WHERE blocking_session IS NOT NULL))
ORDER BY s.blocking_session NULLS FIRST;


-- 与锁相关的等待事件
SELECT
  sid,
  seq#,
  event,
  wait_class,
  state,
  wait_time_micro/1000000 as wait_seconds,
  time_since_last_wait_micro/1000000 as since_last_wait_seconds
FROM v$session_wait
WHERE event LIKE '%enq%'
   OR event LIKE '%lock%'
   OR event LIKE '%busy%'
ORDER BY wait_time_micro DESC;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-7 20:06 , Processed in 0.452919 second(s), 23 queries .

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

© 2001-2020

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