[发明专利]一种追踪数据库事务时间和分析数据库锁的方法和装置在审
申请号: | 201811426394.1 | 申请日: | 2018-11-27 |
公开(公告)号: | CN111221869A | 公开(公告)日: | 2020-06-02 |
发明(设计)人: | 孙晓野 | 申请(专利权)人: | 北京京东振世信息技术有限公司 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/27;G06F16/242 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;张效荣 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 追踪 数据库 事务 时间 分析 方法 装置 | ||
本发明公开了一种追踪数据库事务时间和分析数据库锁的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:创建待追踪事务的应用层的事务标识;记录并存储所述待追踪事务执行时的事务状态时间,以及该事务中结构化执行语句执行时的语句状态时间;将所述事务状态时间和所述语句状态时间分别与所述事务标识相关联。该实施方式因为采用创建应用层面的事务标识、记录存储与该事务标识相关联的事务状态时间和语句状态时间,所以克服了现有技术中无法在数据库锁被释放后查询数据库锁的情况,进而达到能够减少查询数据库锁的信息时对数据库的依赖的技术效果。
技术领域
本发明涉及计算机技术领域,尤其涉及一种追踪数据库事务时间和分析数据库锁的方法和装置。
背景技术
在分布式数据库系统中,经常会因为处理并发业务而发生资源抢占的情况,为了保证数据的准确性,数据库系统会产生数据库锁;当数据库锁没有被及时释放,就会导致一些线程处理的事务无法继续进行,进而发生事务回滚,使得业务处理的效率较低。当产生数据库锁时,数据库中会暂时保存锁的状态以及导致数据库锁产生的SQL(结构化查询语句),但是当数据库锁被释放后,则无法再查看这些信息。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有技术中可以在产生数据库锁时,实时查询锁的情况从而排查问题,但是无法在数据库锁被释放后查询到锁的情况;并且,从数据库查询到的锁的信息中,只能知道是哪些SQL(结构化查询语句)发生互斥,而无法准确定位出数据库锁具体是由哪些事务、哪些方法、哪些应用产生的,进而也无法更好地优化应用程序。
发明内容
有鉴于此,本发明实施例提供一种追踪数据库事务时间和分析数据库锁的方法和装置,能够追踪记录数据库事务以及事务中的SQL(结构化查询语句)执行的开始、结束时间,并将SQL以及执行它的事务关联起来,从而减少查询数据库锁的信息时对数据库的依赖;并且在数据库锁被释放后也能够根据追踪到的时间信息、SQL与事务的关联信息进行数据库锁的分析,得到互斥的SQL具体是由哪些事务、哪些方法、哪些应用产生的,进而能够更好地优化应用程序,以提高其运行效率。
为实现上述目的,根据本发明实施例的第一个方面,提供了一种追踪数据库事务时间的方法,包括:
创建待追踪事务的应用层的事务标识;
记录并存储所述待追踪事务执行时的事务状态时间,以及该事务中结构化执行语句执行时的语句状态时间;
将所述事务状态时间和所述语句状态时间分别与所述事务标识相关联。
可选地,创建待追踪事务的应用层的事务标识,包括:
获取执行所述待追踪事务的线程的哈希值,与所述待追踪事务对应的数据库连接对象的哈希值;将所述线程的哈希值与所述连接对象的哈希值拼接,作为所述事务标识;或者,
采用snowflake算法确定所述事务标识。
可选地,所述事务状态时间包括:事务开始时间、事务结束时间、事务回滚时间;
所述语句状态时间包括:语句开始时间、语句结束时间。
可选地,记录所述待追踪事务执行时的事务状态时间,以及该事务中结构化执行语句执行时的语句状态时间,包括:
当所述待追踪事务执行时,根据添加好的记录模块记录所述事务状态时间和所述语句状态时间;
所述记录模块是采用修改字节码的方式添加的、用于记录所述事务状态时间和所述语句状态时间的模块。
可选地,将所述事务状态时间和所述语句状态时间分别与所述事务标识相关联,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东振世信息技术有限公司,未经北京京东振世信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811426394.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体非挥发性存储元件结构
- 下一篇:柔性显示面板的制作方法