分享一个常用的sql语句--实时查找超过10秒的sql 值得收藏!

系统卡顿常因SQL问题,本文分享实时查找超过10秒SQL的方法。还提及若要kill会话可执行特定语句,但需根据业务判断;可通过特定查询语句查看具体SQL的ID及内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

很多时候我们会发现系统突然莫名其妙的卡顿,一般根源都是sql方面的问题,这个时候如果想知道系统是由哪条sql引起卡顿的,可以怎么处理呢?下面分享一个实时去查超过10s的sql。


实时查找超过10秒的sql

SELECT 'kill -9 '||p.spid,/*p.spid,p.pid,*/s.sid,s.username,s.machine,s.sql_hash_value,s.last_call_et 秒,s.last_call_et/ 60 运行时间,s.client_info,p.program "OSProgram",
'alter system kill session ''' ||s.SID||','||s.SERIAL#|| ''';'
FROM v$session s, v$process p
WHERE (s.status = 'ACTIVE' ) AND ((s.username IS NOT NULL)
AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND (p.addr(+) = s.paddr)
--and s.username in ('CRMDB') 
and s.last_call_et > 10
/*and s.sql_hash_value=880766746*/
ORDER BY s.last_call_et/60 desc,"USERNAME" ASC , ownerid, "USERNAME" ASC;

分享一个常用的sql语句--实时查找超过10秒的sql   值得收藏!

 

如果想kill掉会话可以执行下面语句:(这一步慎用,根据具体的业务来,判断是否可以kill)

alter system kill session '227,22153';

查看具体是哪条sql的ID可以这样查:

select sql_id from v$session where sid=227 --c212jfrj1m0fg

分享一个常用的sql语句--实时查找超过10秒的sql   值得收藏!

 

查看具体sql:

select listagg(sql_text,' ') within group (order by piece)
from v$sqltext
where sql_id = 'c212jfrj1m0fg'
group by sql_id

分享一个常用的sql语句--实时查找超过10秒的sql   值得收藏!

 

可以发现这条sql超过了10s

UPDATE FSL_OR SET SEND = '1' WHERE ORDERNUMBER = 'A' || '-' || : B2 || '-' || :B1 AND ORTYPE='实际订单'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值