SQL Server 查看进程阻塞及处理
修改或删除数据前先备份,先备份,先备份(重要事情说三遍)!
1、首先,查看线程,分析是否存在阻塞进程,blocked>0都是当前被阻塞的进程
SELECT * FROM sysprocesses where blocked >0 order by blocked ;
2、找到被阻塞的线程后,想要继续查看进程被谁阻塞,分析导致阻塞的源头
SELECT * FROM SYSPROCESSES WHERE spid =spid_no(这是你要分析的进程ID)
3、查看此进程执行的SQL 是哪个,查找问题原因
dbcc inputbuffer(spid);
4、如果想要结束当前进程,KILL 掉当前导致阻塞的SQL
kill spid
以上是手工分析,当前生产有哪些阻塞并自动分析出来源头,我下面提供一个自己整理的自动分析过程,亲测有效,可直接使用:
use master
go
declare @spid int,@bl int
DECLARE s_cur CURSOR FOR
select 0 ,blocked
from (select * from sysprocesses where blocked>0 ) a
where not exists(select * from (select * from sysprocesses where blocked>0 ) b
where a.blocked=spid)
union select spid,blocked from sysprocesses where blocked>0
OPEN s_cur
FETCH NEXT FROM s_cur INTO @spid,@bl
WHILE @@FETCH_STATUS = 0
begin
if @spid =0
select '引起数据库死锁的是:
'+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'
else
select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '
进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'
DBCC INPUTBUFFER (@bl )
FETCH NEXT FROM s_cur INTO @spid,@bl
end
CLOSE s_cur
DEALLOCATE s_cur
SQL Server 查看进程阻塞及处理的更多相关文章
- SQL Server 在线进程分析处理
SQL Server 在线进程分析处理 前言 数据库在线进程处理在很多时候需要人为干预已达到预期管理目标,下面整理一下常用的在线进程管理方法,便于后续工作使用. 一.查看目标数据库在线进程,并杀死指定 ...
- SQL SERVER 查看mdf ldf文件路径
SQL SERVER 查看mdf ldf文件路径 select filename from sysfiles
- sql server 查看对象最后修改时间
sql server 查看对象最后修改时间,根据最后修改时间排序 存储过程 SELECT * FROM sys.all_objects WHERE TYPE='P' ORDER BY modify_ ...
- SQL Server查看库、表占用空间大小
转自:https://blog.csdn.net/yenange/article/details/50493580 查询数据文件与日志文件占用情况,查看数据大小,查看库大小 1. 查看数据文件占用(权 ...
- Sql Server 查看存储过程最后修改时间
Sql Server 查看存储过程最后修改时间 select * from sys.procedures order by modify_date desc
- SQL Server查看Sql语句执行的耗时和IO消耗
原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...
- sql server 查看锁表SQL【转】
1.select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)2.用sp_who2 + pid(进程 ...
- SQL Server 监控统计阻塞脚本信息
数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的 ...
- SQL SERVER 查看近期死锁
在项目运行的过程中,死锁不可能完全避免,但要尽可能减少死锁的出现, 产生死锁的原因主要是: 1,系统资源不足. 2,进程运行推进的顺序不合适. 3,资源分配不当等. 产生死锁的四个必要条件:- 互斥条 ...
随机推荐
- Python-tkinter-window
示例代码讲解 1.加载tkinter模块 2.创建一个窗口 3.设置窗口的主题 4.开始窗口的事件循环 import tkinter 2 win = tkinter.Tk() 3 win.title( ...
- 从设计模式角度看OkHttp源码
前言 说到源码,很多朋友都觉得复杂,难理解. 但是,如果是一个结构清晰且完全解耦的优质源码库呢? OkHttp就是这样一个存在,对于这个原生网络框架,想必大家也看过很多很多相关的源码解析了. 它的源码 ...
- 使用jQuery实现ajax请求
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2021/3/13 Time: 14:54 To change this tem ...
- ajax函数
使用三个函数是按ajax请求的处理 1.$.ajax() jQuery中实现ajax的核心函数 2.$.post() 使用post方式做ajax请求 3.$.get 使用get方式做ajax请求 $. ...
- java例题_29 二维数组问题,并输出对角线之和
1 /*29 [程序 29 求矩阵对角线之和] 2 题目:求一个 3*3 矩阵对角线元素之和 3 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. 4 */ 5 6 ...
- c++一些概念
面向对象语言三大特征: 封装,多态,继承 封装: 1.将函数定义到结构体内部,就是封装. 2.编译器会自动传递结构体的指针给函数. 类: 带有函数的结构体,称为类. 成员函数: 结构体里面的函数,称为 ...
- MySQL常用配置参数说明
1.sync_binlog sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来 ...
- java面试-CAS底层原理
一.CAS是什么? 比较并交换,它是一条CPU并发原语. CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B.当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什 ...
- 死磕Spring之AOP篇 - Spring AOP常见面试题
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...
- JMeter自定义采样器插件开发
JMeter自定义采样器插件开发 目录 JMeter自定义采样器插件开发 1. 简介 2. 需求简介 3.成品展示 成功展示 失败展示 4. 准备开发环境 4.1 准备pom文件 4.2 新建Java ...