java sqlserver 死锁_sqlserver数据库发生死锁处理

SQLSERVER数据库锁表

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  = 57 --锁表进程

declare @sql varchar(1000)

set @sql='kill '+cast(@spid  as varchar)

exec(@sql)

3. 查询数据库死锁的信息

CREATE procedure sp_who_lock

as

begin

declare @spid int

declare @blk int

declare @count int

declare @index int

declare @lock tinyint

set @lock=0

create table #temp_who_lock

(

id int identity(1,1),

spid int,

blk int

)

if @@error<>0 return @@error

insert into #temp_who_lock(spid,blk)

select 0 ,blocked

from (select * from master..sysprocesses where blocked>0)a

where not exists(select * from  master..sysprocesses where a.blocked =spid and blocked>0)

union select spid,blocked from  master..sysprocesses where blocked>0

if @@error<>0 return @@error

select @count=count(*),@index=1 from #temp_who_lock

if @@error<>0 return @@error

if @count=0

begin

select '没有阻塞和死锁信息'

return 0

end

while @index<=@count

begin

if exists(select 1 from #temp_who_lock a where id>@index and exists(select 1 from #temp_who_lock where id<=@index and a.blk=spid))

begin

set @lock=1

select @spid=spid,@blk=blk from #temp_who_lock where id=@index

select '引起数据库死锁的是: '+ CAST(@spid AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'

select  @spid, @blk

dbcc inputbuffer(@spid)

dbcc inputbuffer(@blk)

end

set @index=@index+1

end

if @lock=0

begin

set @index=1

while @index<=@count

begin

select @spid=spid,@blk=blk from #temp_who_lock where id=@index

if @spid=0

select '引起阻塞的是:'+cast(@blk as varchar(10))+ '进程号,其执行的SQL语法如下'

else

select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@blk AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'

dbcc inputbuffer(@spid)

dbcc inputbuffer(@blk)

set @index=@index+1

end

end

drop table #temp_who_lock

return 0

end

GO

4.  设置数据库锁的级别

READ_COMMITTED_SNAPSHOT  ON

使用基于行版本控制的隔离级别 (SQL Server 2005 支持 ) :开启下面的选项后, SELECT 不会对请求的资源加 S 锁,不加锁或者加 Sch-S 锁,

从而将读与写操作之间发生的死锁几率降至最低;而且不会发生脏读

ALTER DATABASE EBCMKS SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE EBCMKS SET READ_COMMITTED_SNAPSHOT ON

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

setjump和longjump

int setjmp( jmp_buf env );void longjmp( jmp_buf env, int value );# setjmp(j)设置“jump”点&#xff0c;用正确的程序上下文填充jmp_buf 对象j。这个上下文包括程序存放位置、栈和框架指针&#xff0c;其它重要的寄存器和内存数据。当初始化完jump 的上下文&#xff0c;se…

jmeter操作数据库

1) jmeter不能直接连数据库&#xff0c;需要先添加jar包。 然后将jar包的路径添加到下图&#xff1a; 2) 操作数据库之前要知道数据库的信息&#xff08;ip、端口号、账号、密码&#xff09;&#xff0c;操作哪个数据库就连哪个&#xff1a; 在配置元件-JDBC Connectio…

使用Hystrix DSL创建弹性骆驼应用程序

Apache Camel是一个成熟的集成库&#xff08;到现在已有9年的历史了&#xff09;&#xff0c;它实现了Enterprise Integration Patterns一书中的所有模式。 但是Camel不仅是EIP实现库&#xff0c;它还是一个不断发展&#xff0c;添加新模式并适应行业变化的现代框架。 除了在每…

php7 对象转数组,php7中为对象/关联数组进行解构赋值

在CoffeeScript&#xff0c;Clojure&#xff0c;ES6和许多其他语言中&#xff0c;我们对对象/贴图/等进行了解构&#xff0c;如下所示&#xff1a;obj {keyA: Hello from A, keyB: Hello from B}{keyA, keyB} obj我在php中找到了这个list函数&#xff0c;可以让你像这样构造数…

虚函数表

虚函数   C中的虚函数的实现一般是通过虚函数表(C规范并没有规定具体用哪种方法&#xff0c;但大部分的编译器厂商都选择此方法)。 类的虚函数表是一块连续的内存&#xff0c;每个内存单元中记录一个JMP指令的地址。 注意的是&#xff0c;编译器会为每个有虚函数的类创建一个…

linux bash tutorial

bash read-special-keys-in-bash xdotool linux 登录启动顺序转载于:https://www.cnblogs.com/shaohef/p/9528927.html

centos7安装php8,centos8安装php7.4

一&#xff0c;下载php7.41&#xff0c;官方网站:https://www.php.net/2,下载[rootyjweb source]# wget https://www.php.net/distributions/php-7.4.2.tar.gz说明&#xff1a;在linux上以编译方式安装软件时&#xff0c;多数人都习惯把软件安装到 /usr/local目录下&#xff0c…

C++的四种强制类型转换

C的四种强制类型转换&#xff0c;所以C不是类型安全的。分别为&#xff1a;static_cast , dynamic_cast , const_cast , reinterpret_cast 为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C类型的强制转换呢&#xff1f; 新类型的…

MongoDB系列之——安装和启动

CentOS 7 安装MongoDB 4.0 社区版 1. Yum安装 创建Yum仓库先创建新的文件 vim /etc/yum.repos.d/mongodb-org-4.0.repo  在新文件中填入     [mongodb-org-4.0] nameMongoDB Repository baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/…

javaone_JavaOne 2012:JavaFX图形技巧和窍门

javaone我回到希尔顿&#xff08;皇家宴会厅B&#xff09;看了Richard Bair的&#xff08;Oracle Java Client Architect&#xff09;的“ JavaFX图形技巧和窍门”。 Bair与FX Experience相关联&#xff0c;并且显然了解JavaFX。 拜尔说&#xff0c;他演讲的主题是表演。 他告诫…

php pdo 参数绑定,PDO预处理之参数绑定和列绑定

摘要&#xff1a;PDO查询中&#xff0c;2个绑定操作&#xff1a;参数绑定与列绑定&#xff1b;参数绑定&#xff1a;bindParm() 和 bindValue();bindParm(:占位符,变量,类型常量) 类型常量默认为字符串bindValue(:占位符,值或变量,类型常量) 如果直接传值&#xff0c;可省略类型…

自定义C++异常处理

例1&#xff1a;自定义一个继承自excepton的异常类myException C标准中&#xff0c;定义在<stdexcept>中的任何异常类都派生自exception Class&#xff0c;本例也只是简单地由exception继承&#xff0c;在try段抛出一个异常并捕捉。代码如下&#xff1a; /* test.cpp ve…

DCL并非单例模式专用

我相信大家都很熟悉DCL&#xff0c;对于缺少实践经验的程序开发人员来说&#xff0c;DCL的学习基本限制在单例模式&#xff0c;但我发现在高并发场景中会经常遇到需要用到DCL的场景&#xff0c;但并非用做单例模式&#xff0c;其实DCL的核心思想和CopyOnWrite很相似&#xff0c…

使用CLI扩展和重新平衡Couchbase集群

Couchbase通过多种方式提供高可用性和灾难恢复 &#xff1a; 同质簇 复写 集群内复制 备份还原 机架区意识 该博客将展示如何使用Couchbase命令行界面&#xff08;CLI&#xff09;创建Couchbase集群。 此外&#xff0c;还可以使用Couchbase REST API和Couchbase Web Consol…

将php源码修改成存在注入的源码,天融信关于ucms系统存在代码注入漏洞的分析...

一、背景介绍UCMS是一款简单的开源内容管理系统&#xff0c;可以非常方便的通过它来快速开发各种各种企业站、文章站、站群系统。系统兼容PHP5.2–PHP7.0&#xff0c;在APACHE、NGINX、IIS上都能使用&#xff0c;支持MySQL SQLite两种数据库。后台简洁高效&#xff0c;上手容易…

第1章 计算机系统漫游(深入理解计算机系统)

1 #include <stdio.h> 2 3 int main() 4 { 5 printf("hello, world\n"); 6 } 1.1 信息就是位上下文 hello程序的声明周期是从一个源程序开始的&#xff0c;即程序员利用编辑器创建并保存的文本文件&#xff0c;文件名是hello.c。源程序实际上就是一个由值…

java impliments,dubbo使用GenericService泛化调用

我们项目中常见场景&#xff0c;java应用内部接口都是使用dubbo&#xff0c;某个非java应用需要调用我们的接口的时候&#xff0c;无法使用dubbo&#xff0c;这是我们需要给它提供其他形式的接口&#xff0c;如restful api等等&#xff0c;这时我们需要为这个接口开发而增加额外…

使用Eclipse 创建 搭建SpringBoot项目

之前用IDEA 创建Springboot 项目感觉十分简单&#xff0c;但是常用的毕竟是Eclipse 所以开一个帖子记录一下Eclipse 如何创建 Springboot 项目 第一步&#xff1a;Help -> Eclipse Marketplace… 在search 中输入 STS install 即可&#xff01; 第二部&#xff1a;new -&g…

static函数与普通函数区别

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式&#xff0c; 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序&#xff0c; 当一个源程序由多个源文件…

zendguard php5.4,ZendGuardLoader6.0.0支持PHP5.4.x系列

不知不觉&#xff0c;现在Zend Guard Loader发布了6.0.0版本&#xff0c;支持PHP 5.4.x系列。官方地址&#xff1a;http://www.zend.com/en/products/guard/downloads (需要注册用户后下载)这里提供下常用的版本Windows&#xff1a;附件&#xff1a;ZendGuardLoader-70429-PHP-…