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

数据库出现死锁的解决方法参考

        死锁引起的原因一般是多个用户并发访问数据库导致的问题,或是因为某个进程挂死以后资源未释放导致的。通过onstat –p可查看deadlks项大于0即表示历史总计死锁次数。对于被锁的表进行操作的时候会出现-143 ISAM error: deadlock detected的错误。当其他会话访问此表出现死锁超时,出现:-154 ISAM error: Lock Timeout Expired
  通常情况下,死锁是由于应用设计和数据访问的规划没有优化而产生的,如发生的频率不大,可以忽略。

  处理方案:
  1、收集deadlock的信息
  onstat -g ppf查找当前dlks不为0的会话,获取partnum信息

  2、通过步骤1获取的partnum收集对应tblsnum
  onstat –k查看锁的使用和等待情况,通过tblsnum对应partnum

  3、通过onstat命令获取发生deadlock的SQL
  onstat –g sql 0,从结果中查找当前所有符合sql error code的SQL信息

  4、把table的锁粒度修改为更小的级别
  如修改页级锁为行级锁:
  alter table xxx lock mode(row);
  或
  通过onconfig修改DEF_TABLE_LOCKMODE为ROW重启生效

  5、调整数据库的隔离级别

set isolation to dirty read;
set isolation to commmited read last commited;

  6、缩短锁等待时间

set lock wait to n; (n秒)
set lock wait to not wait;

  7、分析SQL应用逻辑是否合理 主要从多个并发的SQL争用,分析是否有数据进行合理的水平切割

  8、根据SQL分析执行计划是否合理

set explain on avoid_excute;
;
set explain off;

系统自动生成explain.out文件

  9、根据步骤8产生的文件进行分析
  是否未合理使用索引导致执行计划出错,进一步引发了锁资源不能及时释放

  10、若索引合理,判断是否统计信息失效

update statistics medium for table xxx;

  重新搜集统计信息


更多信息内容请移步星瑞格官方社区,期待大家加入
Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

http://www.lryc.cn/news/346681.html

相关文章:

  • HCIP-Datacom-ARST自选题库_01_防火墙【6道题】
  • 力扣/leetcode383.比特位记数
  • react18【系列实用教程】useEffect —— 副作用操作 (2024最新版)
  • Excel 分组汇总后删除明细
  • docker runc升级1.1.12
  • C++接口:构建模块化与可扩展的软件架构
  • 【讲解下目标追踪】
  • 实时Linux对EtherCAT工业自动化协议的支持
  • ViLT 浅析
  • 7-117 死亡隧道
  • java数据结构与算法(链表归并排序)
  • 最新网页版USB转串口芯片CH340中文规格书手册(20240511)
  • 关于 MongoDB 数据库基本操作的详细介绍
  • 【网络基础】网络层 之 IP协议与分片、网段划分、IP地址分类、子网掩码与路由
  • C语言实现猜数字小游戏
  • iOS Failed to create provisioning profile.
  • 122. Kafka问题与解决实践
  • Pytorch常用的函数(九)torch.gather()用法
  • 用爬虫解决问题
  • 机器学习-有监督学习
  • 【详细介绍下Visual Studio】
  • 【Golang】实现 Excel 文件下载功能
  • 设计模式2——原则篇:依赖倒转原则、单一职责原则、合成|聚合复用原则、开放-封闭原则、迪米特法则、里氏代换原则
  • 深入探讨布隆过滤器算法:高效的数据查找与去重工具
  • 基于STC12C5A60S2系列1T 8051单片机实现一主单片机与一从单片机进行双向串口通信功能
  • ubuntu18.04安装docker容器
  • 202212青少年软件编程(Python)等级考试试卷(二级)
  • 单播、组播、广播
  • 吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13-1.14
  • 笔试强训未触及题目(个人向)