首页 > 数据库 >sqlserver 数据库死锁 解决心得

sqlserver 数据库死锁 解决心得

时间:2023-06-14 20:24:12浏览次数:45  
标签:resource 数据库 sqlserver 死锁 spid M2 心得 id

  背景:一个客服数据库,每天不定时死锁,死锁时间很短。等到远程时死锁已经结束。

  起初遇到死锁,一般都是先通过活动监视器,找到头阻塞的id,通过spid定位到机器和程序。但是这次情况比较特殊,每次死锁时间较短,不好追踪。最后想来想去还是锁的概念掌握的不够清晰,在网上又找了几篇文章,受到了启发。

  首先为什么会锁,是因为 1.A事务手里拿着M1 ,需要获得M2 ,B事务手里拿着M2,需要获得M2  2,A事务如果获得某张表的共享锁 S 不释放,B事务想要update 表 会锁 。  我感觉这个客户的情况像第二种: 

 该语句可以查看数据库中session锁情况。

SELECT resource_type, request_mode, resource_description,request_session_id, DB_NAME(resource_database_id)as resource_database
FROM   sys.dm_tran_locks
WHERE  resource_type <> 'DATABASE'

 发现有一个spid一直使用架构锁,通过这个spid  再查询分析器里过滤出 是在执行一个存储过程,对一个表的索引重建。 这个应该会对数据库的性能影响很大,并如果有用户访问这张表会造成死锁。 查询分析器里可以看到应用名称和ip地址。结束这个应用服务。之后就是继续观察,希望这次猜的没问题。

标签:resource,数据库,sqlserver,死锁,spid,M2,心得,id
From: https://www.cnblogs.com/A-little-bird/p/17481246.html

相关文章

  • CMU15-445 Project3 Query Execution心得
    Project3QueryExecution心得一、概述首先要说:这个project很有趣很硬核!从这个project开始才感觉自己在数据库方面真正成长了!第一个project:bufferpoolmanager相对独立且简单,说白了就是使用LRU-K算法维护一个page数组,2022fall又加了一点内容:使用可扩展哈希来将对......
  • 本地电脑连接远程服务器上的SQLServer配置
    1.首先是要打开SQLServer2016配置管理器 2.SQLServer网络配置的MSSQLSERVER的协议和配置相关的客户端协议,开启TCP/IP 3.数据库默认的远程端口是1433,但是不是安全的,可以手动更改端口,更待客户端协议的IP,本实例用1433端口  这里需要找到最下边的IPAll,然后修改......
  • sqlserver使用between and 筛选时间,两个时间段选择一样筛选当天的数据无法筛选
    一般我们使用时间筛选代码是select*from表名wheredatebetweenRQANDRQ1但是这样子是无法筛选当天数据的,想要筛选当天数据得对这个代码进行一下修改,这里是sqlserver的代码select*from表名whereCONVERT(nvarchar(10),date,120)betweenRQANDRQ1   mysql代码如......
  • SQLServer低版本附加高版本的数据库常用处理方法
    SqlServer低版本数据库不能直接还原或附加Sql高版本数据库或备份文件,我们常用DTS互导的方式,如果不同版本数据库不可访问,可以使用高版本数据库的DTS导出整个库的相应低版本建库脚本与数据,然后放在低版本数据库中去执行,常见如:我们库数据库一般是SqlServer2008+,有的客户使用的是2005版......
  • spring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle)
    序号类型地址1MySQLMySQL操作之概念、SQL约束(一)2MySQLMySQL操作之数据定义语言(DDL)(二)3MySQLMySQL操作之数据操作语言(DML)(三)4MySQLMySQL操作之数据查询语言:(DQL)(四-1)(单表操作)5MySQLMySQL操作之数据查询语言:(DQL)(四-2)(多表查询)6MySQLMySQL操作之数据控制语言:(DC)(五)7MySQLMySQL操作之数......
  • Android自动化随机测试工具-Monkey测试心得
    心得一Monkey测试Android应用,尤其是在测试长时间的稳定性和健壮性时,切勿盲目的使用--throttle参数。我们的测试思路应该是:第一次,我们尽量先不使用--throttle参数,执行事件计数少点,比如300或500。执行完后,记录下所需要的时间。接下来,我们使用第一次的Monkey命令,加......
  • sqlserver 数据库备份
    sqlserver添加作业备份数据库优点:操作简单缺点:不能实时备份 --备份declare@filenamevarchar(255)select@filename='E:\MES-BAK\MES'+left(replace(replace(REPLACE(convert(varchar(100),GETDATE(),120),':',''),'-',''),'&#......
  • 死锁
    死锁为什么会产生死锁?只有理解了死锁为什么会产生,才能理解死锁产生需要的条件,同样死锁是一种现象,而不是一种机制.死锁的出现其实是由于同步原语也就是各种同步机制所带来的,不可能做到百分百避免当有多个线程为了有限的资源竞争时,有的线程就会因为某一时刻没有空闲的......
  • 202306112142-《最近开发心得...》
     没有心得就是在瞎搞,写心得就是“埋头耕耕,抬头看看”,看看自己做了什么......    心得就是心的感受,并非得到了什么,我以前是搞前端开发,仅仅4-5年时间,见证Angular市场份额的减少,backbone还嫌有耳闻,鲜有招聘;React框架从耳闻到霸屏;个人沐浴jquery的春风,枯于市场类似Vue......
  • ChatGPT学习心得一(使用node+react做了一个案例)
    ChatGPT学习心得一(使用node+react做了一个案例) 项目地址http://chat.xutongbao.top项目截图编辑编辑编辑 编辑编辑使用技术栈node+SQLite+redis+nginx+log4js+express+jenkins+cdn+react+antd+react-scrollbars-custom+iconfont+webpack+postman+axios+redux+immut......