[发明专利]一种数据库死锁检测方法及装置在审
申请号: | 201910662156.9 | 申请日: | 2019-07-22 |
公开(公告)号: | CN112256442A | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 陆天炜;付裕;邹海丽 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F16/23;G06F9/46 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 蒋冬梅;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 死锁 检测 方法 装置 | ||
1.一种数据库死锁检测方法,包括:
统计设定时长内数据库事务的结构化查询语言SQL执行信息,生成死锁检测指标;
根据所述死锁检测指标,监控实时数据库事务的SQL执行信息;
当所述实时数据库事务的SQL执行信息满足所述死锁检测指标,则进行死锁检测。
2.根据权利要求1所述的方法,其特征在于,所述死锁检测指标包括:一个或多个SQL类别的SQL执行阈值。
3.根据权利要求2所述的方法,其特征在于,所述SQL执行阈值包括以下至少之一:执行时长阈值、锁占用时长阈值;
所述实时数据库事务的SQL执行信息满足所述死锁检测指标,包括以下至少之一:
针对所述实时数据库事务包括的任一SQL语句,所述SQL语句的最大执行时长大于所述SQL语句所属的SQL类别的执行时长阈值;
所述SQL语句的最大锁占用时长大于所述SQL语句所属的SQL类别的锁占用时长阈值。
4.根据权利要求2所述的方法,其特征在于,所述统计设定时长内数据库事务的SQL执行信息,生成死锁检测指标,包括:
统计设定时长内数据库事务包括的每个SQL语句的SQL执行信息;
确定每个SQL语句归属的SQL类别;
针对任一SQL类别,根据归属于所述SQL类别的SQL语句的SQL执行信息,筛选出置信区间;根据置信区间内的SQL语句的SQL执行信息以及设定阈值,计算出所述SQL类别的执行阈值。
5.根据权利要求1所述的方法,其特征在于,所述进行死锁检测,包括:
针对满足所述死锁检测指标的SQL语句,查找所述SQL语句占用的数据上是否存在锁等待的SQL语句;
当所述SQL语句占用的数据上存在锁等待的SQL语句,则执行全局死锁检测。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在检测到存在死锁之后,根据数据库的死锁拆除策略进行处理。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
周期性更新统计到的SQL执行信息;
针对任一SQL类别,当所述SQL类别对应的SQL执行信息满足设定条件时,更新所述死锁检测指标内所述SQL类别的SQL执行阈值,并根据更新后的死锁检测指标,监控实时数据库事务的SQL执行信息。
8.一种数据库死锁检测装置,其特征在于,包括:结构化查询语言SQL统计模块、SQL执行模块以及死锁检测模块;
所述SQL统计模块,用于统计设定时长内数据库事务的SQL执行信息,生成死锁检测指标;
所述SQL执行模块,用于根据所述死锁检测指标,监控实时数据库事务的SQL执行信息;以及当所述实时数据库事务的SQL执行信息满足所述死锁检测指标,触发所述死锁检测模块进行死锁检测。
9.根据权利要求8所述的装置,其特征在于,所述死锁检测指标包括:一个或多个SQL类别的SQL执行阈值。
10.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现如权利要求1至7中任一项所述的数据库死锁检测方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910662156.9/1.html,转载请声明来源钻瓜专利网。