当前位置: 首页 > news >正文

SQL SERVER死锁查询,死锁分析,解锁,查询占用

From:  https://www.cnblogs.com/K-R-/p/18431639

简单点的处理方法:

1、查询死锁的表

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type='OBJECT'

2、解锁

declare @spid int
Set @spid = 79 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)

 

 

专业点的处理方法:

1.查询死锁的表:

复制代码
复制代码
SELECTrequest_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
FROMsys.dm_tran_locks
WHEREresource_type = 'OBJECT'
复制代码
复制代码

2.分析被锁死的原因:

复制代码
复制代码
select t1.resource_type                                [资源锁定类型], DB_NAME(resource_database_id)                as 数据库名, t1.resource_associated_entity_id                锁定对象, t1.request_mode                              as 等待者请求的锁定模式, t1.request_session_id                           等待者SID, t2.wait_duration_ms                             等待时间, (select TEXTfrom sys.dm_exec_requests rcross applysys.dm_exec_sql_text(r.sql_handle)where r.session_id = t1.request_session_id) as 等待者要执行的SQL, t2.blocking_session_id                          [锁定者SID], (select TEXTfrom sys.sysprocesses pcross applysys.dm_exec_sql_text(p.sql_handle)where p.spid = t2.blocking_session_id
)                                                      锁定者执行语句
from sys.dm_tran_locks t1,sys.dm_os_waiting_tasks t2
where t1.lock_owner_address = t2.resource_address
复制代码
复制代码

3.解锁:

复制代码
复制代码
create Proc Sp_KillAllProcessInDB
@DbName VarChar(100)
as
if db_id(@DbName) = Null
begin
Print 'DataBase dose not Exist'
end
elseBegin
Declare @spId Varchar(30)DECLARE TmpCursor CURSOR FOR
Select 'Kill ' + convert(Varchar, spid) as spId
from master..SysProcesses
where db_Name(dbID) = @DbName
and spId <> @@SpId
and dbID <> 0
OPEN TmpCursorFETCH NEXT FROM TmpCursor
INTO @spIdWHILE @@FETCH_STATUS = 0BEGINExec (@spId)FETCH NEXT FROM TmpCursor
INTO @spIdENDCLOSE TmpCursor
DEALLOCATE TmpCursorend
复制代码
复制代码

4、查询SQL占用资源情况:

复制代码
复制代码
SELECT TOP 20total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],last_execution_time AS [最后一次执行时间],max_worker_time /1000 AS [最大执行时间(ms)],SUBSTRING(qt.text,qs.statement_start_offset/2+1, (CASE WHEN qs.statement_end_offset = -1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) AS [使用CPU的语法], qt.text [完整语法],dbname=db_name(qt.dbid),object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY total_worker_time DESC
复制代码
复制代码
http://www.jsqmd.com/news/20443/

相关文章:

  • 自定义组件中监听properties里面的属性的方法里面去取另外的properties里面的属性拿不到值的问题
  • 数字征程,逐级而上;生态协同,智绘新篇—— 艾拓琪威灏 与 哲讯顺维 数字化战略合作签署暨CRMMES项目启动会隆重举行
  • 嵌入式主板全景解析:从选型到趋势,读懂工业智能的核心载体
  • 2025 年唐山油漆生产厂家最新推荐榜单:精选优质企业,解析专业品牌选购指南唐山油漆批发/唐山油漆生产公司推荐
  • 做题笔记21
  • 权威调研榜单:重庆旧房加层改造公司TOP3榜单好评深度解析
  • 2025 年小饭桌加盟品牌最新推荐排行榜:多元服务与深厚底蕴品牌小饭桌加盟连锁/小饭桌加盟连锁/小饭桌少儿托管加盟机构推荐
  • 2025 年 MVR 蒸发器源头厂家最新推荐排行榜:聚焦食品医药化工环保领域优质设备,助力企业精准选型
  • DolphinScheduler依赖机制、Open-Falcon告警推送与监控的优化实践
  • Tailwind CSS 使用入门
  • 2025 年托管班加盟品牌最新推荐排行榜:聚焦国内优质机构,为投资者精选靠谱加盟项目托管班机构加盟/儿童托管班中心加盟/课后托管班加盟/小学托管班加盟连锁推荐
  • vscode创建快捷代码块,同时配置vue2和vue3的快捷代码块
  • 实用指南:Calico 网络插件在 K8s 集群的作用
  • 终于能打出生僻字了!麒麟系统搜狗输入法完整安装指南 - 实践
  • docker 离线下载安装部署
  • PaperReading:《Manipulating Multimodal Agents via Cross-Modal Prompt Injection》 - 详解
  • centos7 安装mysql5.7
  • 新手使用rocky10 过程中遇到问题:忘记root密码
  • godot + Avalonia 渲染第三方UI
  • 国标GB28181算法算力平台EasyGBS的云边协同的算力调度模式关键技术解析
  • 2025-10-23 cocos安装
  • 监控系统搭建集成实例
  • WPF 和 Avalonia 开发者的 html css 前端指南 ScrollViewer 篇
  • 陈旧性瘢痕药物
  • 用EasyPlayer播国标GB28181算法算力平台EasyGBS视频流,居然比点外卖还简单
  • verilog - 指南
  • 2025 年氙灯老化 / 紫外老化 / 冷热冲击 / 恒温恒湿 / 高低温 / 快速温变试验箱厂家推荐:柳沁仪器,多行业检测设备的优质供应伙伴
  • 测试美化效果
  • idea错误解决记录
  • 2025 年连接器厂家最新推荐榜单:覆盖多领域优质产品,为企业选购提供权威参考的国内制造商精选汽车/高速/板载/航空连接器公司推荐