暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
达梦之SQL阻塞分析步骤.docx
451
4页
4次
2023-01-14
10墨值下载
DM
SQL
阻塞分析步骤
样例:
第一步,查询阻塞的事务
ID
select * from v$trxwait order by wait_me desc; --
单机
select * from v$dsc_trxwait order by wait_me desc; --DSC
集群
第二步,查询阻塞事务的会话信息
select sf_get_session_sql(sess_id),* from v$sessions where trx_id=69667; --
单机
select sf_get_session_sql(sess_id),* from gv$sessions where trx_id=69667; --DSC
集群
第三步,查询问题
SQL
cat dmsql_xxxxxx.log | grep "trxid:69967" --
查找问题
DML SQL
,保留
注:需要开启
SVR_LOG
参数
第四步,杀掉会话
sp_close_session(139926142266440);
注:对于
DSC
,需要在相应的节点执行。
其他
SQL
select * from v$lock where trx_id=69667; --
查询阻塞事务的相关锁信息
1
前言
当进行日常巡检、用户反馈执行
SQL
语句卡住或应用运行缓慢时,需要查询数据库中
有没塞的
SQL
在执找到记录杀掉最后
SQL
的合
优化它。
2
阻塞分析步骤
2.1
问题描述
用户报告:执行某条
DML
语句,发现卡住,很长时间都没有执行完成,比如如下
SQL
update test set c1=3; --
会话
1
猜测可能是某个事务未提交导致相关表锁住,阻塞了本事务的执行,导致等待。
就算是
SQL
执行慢也需要先查下有没有阻塞。
2.2
查询阻塞事务
一般人员从这始的现事
69666
被事
69667
阻塞已经
312
秒。
2.3
查询阻塞会话
根据
WAIT_FOR_ID
,事务号
69667
查询哪个会话导致的阻塞问题。
通过可以对应
SQL_TEXT
显示
select
语句
2
),该会
STATE='IDLE'
update
select
语句阻塞呢?带着疑问我们可以查询下相关事务锁的信息。
2.4
查询阻塞事务的锁信息
select * from v$lock where trx_id=69667;
id
1100
IX
TID
X
table_id=1100
了数据修改。查询对应
ID
号的表信息。
select * from sysobjects where id=1100 ;
可以被上表为
TEST
。分这里
trx_id=69667
的事该是
个混合操事务,该事务做了数据没有提交,然又执了其他的操作一个
SQL
update
1
select
2
SQL
of 4
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜