位置: 编程技术 - 正文

记一次公司仓库数据库服务器死锁过程及解决办法(仓库记录)

编辑:rootadmin

推荐整理分享记一次公司仓库数据库服务器死锁过程及解决办法(仓库记录),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:仓库记录,仓管怎么记仓库东西,公司仓库库存明细表格范本,公司仓库库存明细表格范本,仓库如何记账,仓库记录,公司仓库库存明细表格范本,仓库记录,内容如对您有帮助,希望把文章链接给更多的朋友!

死锁的四个必要条件:

互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。

请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。

非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。

循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。

仓库拣货卡死,排查了数据库的很多地方,都没有头绪,最后到SQL Server 错误日志里查看,终于发现了蛛丝马迹

咋一看上面的错误信息,可以发现两条相同的语句造成的死锁,但是这么短的语句不可能持有排他锁太久

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_ac5e.jpg" alt="查看图片" />

再仔细分析一下错误日志,发现都死锁在同一个非聚集索引上,再问了一下开发,开发那边说,这条语句是在一个大事务里面,这个事务会做7、8件事

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_acec2f8.jpg" alt="查看图片" />

索引属性

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_aedc3.png" alt="查看图片" />

还有索引里面的数据,发现很多重复值

记一次公司仓库数据库服务器死锁过程及解决办法(仓库记录)

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_aed.jpg" alt="查看图片" />

SQL语句是这样的

下图为语句生成的执行计划

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_aee.jpg" alt="查看图片" />

当时的情况是大量SQL语句被阻塞,而阻塞的语句正是下面这条语句

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_ac.jpg" alt="查看图片" />

解决方法

上面得出几个症状

1、update语句是在一个大事务里面,事务太大导致其他session等待排他锁的时间变长

2、大家都在使用同一个非聚集索引,并扫描PricingExpressProductCode字段

3、索引里的重复值很多

从上面的症状基本可以判断,这个非聚集索引无啥用,可以禁用之

禁用之后,死锁消失,问题解决,仓库的怨气也随之消失

这一次排查过程时间有点长,但是很好定位,SQL Server错误日志给出了足够的信息定位死锁问题,所以遇到问题的时候一定要分析清楚日志

实用的银行转账存储过程和流水号生成存储过程 银行转账存储过程USE[BankInfor]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[Transfer](@inAccountint,@outAccountint,@amountfloat)asdeclare@totalDepositfloat;beginselect@totalD

asp.net中如何调用sql存储过程实现分页 首先看下面的代码创建存储过程1、创建存储过程,语句如下:CREATEPROCP_viewPage@TableNameVARCHAR(),--表名@FieldListVARCHAR(),--显示列名,如果是全部字段则

SQL Server 附加数据库时Read-Only错误的解决方案 SQLServer附加数据库文件时出现了Read-Only错误,附加的时候,系统提示mdf文件为只读,可是打开文件属性,这个属性不为只读。该怎么解决呢?本文我

标签: 仓库记录

本文链接地址:https://www.jiuchutong.com/biancheng/347380.html 转载请保留说明!

上一篇:开窗函数有浅入深详解(一)(开窗函数窗口范围)

下一篇:实用的银行转账存储过程和流水号生成存储过程(实用的银行转账怎么转)

  • 企业纳税申报表怎么查询
  • 固定资产到期账务处理
  • 个体工商户需要交税吗?怎么交?
  • 咨询公司小规模纳税人怎么界定
  • 预收账款确认收入分录
  • 购买土地自建厂房的会计处理
  • 企业自建房屋卖给职工怎么做账务处理
  • 研发费用在企业所得税中怎么扣除
  • 产品缺陷处理流程
  • 车间消耗品的会计分录
  • 年底计提费用和实际费用
  • 库存商品期末计量
  • 有留抵税额会计分录
  • 设计服务发票怎么入账
  • 有税收完税证明还需要发票吗
  • 限售股转让个人所得税
  • 已付款后收到发货通知
  • 个体户生产所得税怎么计算
  • 公司承兑汇票怎么兑现
  • 电子承兑转让怎么撤销
  • 计划分配率怎么算
  • 个人借单位的钱要交税吗
  • 一般纳税人简易计税会计分录
  • 苹果14.5新功能
  • 固定资产转在建工程提折旧吗
  • 结转收入怎么计算
  • 支付工程款需要什么财务手续
  • 路由器登录密码忘了怎么设置
  • 金融工具减值会影响什么
  • 出口退税进项发票稽核
  • 向境外支付技术提成费需要提交什么材料
  • php开发实战权威指南
  • phpmyadmin版本
  • php 电商
  • 企业所得税申报表A类
  • vue好不好学
  • php简单检测网址是什么
  • uni app ios
  • 公司发放工作服账务处理
  • es6新增了什么
  • 租赁汽车折旧年限怎么算
  • 滴滴普通发票如何开
  • 常见的垃圾回收器有哪些
  • 弥补亏损的会计分录是怎样的
  • 以前年度损益调整账务处理分录
  • 异地如何申报纳税
  • 购买设备配件
  • 以下船舶可在公海上行驶登陆权
  • 采购原材料未入库
  • 纳税申报资料报表怎么填
  • 发票上的货物要怎么填?
  • 资本公积形成的原因有哪些
  • 装修费用进什么科目
  • 增值税专用设备是什么
  • 到银行提取备用金
  • 收到对方的银行承兑汇票
  • 把公司设备操作坏了怎么担责
  • 一般纳税人在外地预缴税款,预缴多了需不需退税
  • 发票线上申领线下配送
  • 如何优化sql语句执行效率
  • win7电脑一键关机快捷键
  • win7无法登录qq
  • OS X 10.10 Yosemite的新特性与iOS联系更紧密
  • windows8.1的设置在哪
  • RAVMOND.exe - RAVMOND是什么进程.有什么作用
  • pax是什么文件
  • win10开机蓝屏提示修复
  • 表单提交servlet
  • node stream原理
  • 对于javascript理解
  • 移动手机指令
  • shell脚本用法
  • python添加图片
  • python计算两个数乘积代码
  • Node.js中的包管理工具是什么
  • jquery get(0)
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • express 前后端分离
  • 税务行政处罚一般程序和简易程序的区别
  • 盐城买家电到哪里买
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设