System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库表重命名与查询方法、装置及设备制造方法及图纸_技高网

数据库表重命名与查询方法、装置及设备制造方法及图纸

技术编号:40821658 阅读:3 留言:0更新日期:2024-04-01 14:41
本申请提供一种数据库表重命名与查询方法、装置及设备,可用于数据库技术领域。上述方法包括:在接收到当前事务对数据库中目标表的重命名操作时,对目标表添加自定义排他锁;该自定义排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作;基于上述重命名操作,修改目标表的名称;将目标表修改后的名称保存到数据库对应的系统表中。本申请解决了现有技术中在高并发查询业务场景下,数据库表重命名操作难以快速完成的技术问题。

【技术实现步骤摘要】

本申请涉及数据库,尤其涉及一种数据库表重命名与查询方法、装置及设备


技术介绍

1、在数据库中,对于表对象的重命名,通常需要先获取该表的排他锁,该排他锁会阻止其他事务对该表进行并发修改,确保在重命名操作期间表是独占的,这样可以防止其他操作(如写入、删除等)干扰重命名过程,确保重命名操作可以顺利进行。

2、然而,虽然上述重命名操作的执行耗时很短,但是在高并发的业务系统中,获取排他锁需要很长的等待时间,导致上述重命名操作难以快速完成,由此会对一些业务系统的性能和响应时间产生负面影响。


技术实现思路

1、本申请提供一种数据库表重命名与查询方法、装置及设备,可以解决现有技术中在高并发查询业务场景下,数据库表重命名操作难以快速完成的技术问题。

2、第一方面,本申请提供一种数据库表重命名方法,该方法包括:

3、在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;

4、基于所述重命名操作,修改所述目标表的名称;

5、将所述目标表修改后的名称保存到所述数据库对应的系统表中。

6、在一些实施例中,所述方法还包括:

7、在修改所述目标表的名称之后,向已与所述数据库建立连接的各个事务广播所述目标表的操作信息,所述操作信息中包括所述目标表修改后的名称。

8、第二方面,本申请提供一种数据库表查询方法,该方法包括:

9、在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;

10、若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;

11、当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。

12、在一些实施例中,所述方法还包括:

13、若当前存在对所述目标表的查询操作,且所述查询操作尚未获取到所述目标表的名称,则根据所述操作信息,从所述数据库对应的系统表中加载所述目标表修改后的名称;

14、基于加载到的所述目标表修改后的名称,执行所述查询操作。

15、在一些实施例中,所述方法还包括:

16、基于加载到的所述目标表修改后的名称,更新缓存中所述目标表的名称信息。

17、第三方面,本申请提供一种数据库表重命名装置,该装置包括:

18、锁添加模块,用于在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;

19、处理模块,用于基于所述重命名操作,修改所述目标表的名称;

20、保存模块,用于将所述目标表修改后的名称保存到所述数据库对应的系统表中。

21、第四方面,本申请提供一种数据库表查询装置,该装置包括:

22、确定模块,用于在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;

23、保存模块,用于若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;

24、更新模块,用于当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。

25、第五方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

26、所述存储器用于存储计算机执行指令;

27、所述处理器用于执行所述存储器存储的计算机执行指令,以实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。

28、第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。

29、第七方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。

30、本申请提供的数据库表重命名方法,通过将重命名数据库表对象所需要获取的排他锁降级为一种受限的排他锁,该排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作,从而使得重命名数据库对象不需要长时间等待排他锁,在高并发查询压力下,重命名表操作也能快速完成。

本文档来自技高网...

【技术保护点】

1.一种数据库表重命名方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.一种数据库表查询方法,其特征在于,所述方法包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.一种数据库表重命名装置,其特征在于,所述装置包括:

7.一种数据库表查询装置,其特征在于,所述装置包括:

8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如权利要求1-2任一项所述的数据库表重命名方法;或者实现如权利要求3-5任一项所述的数据库表查询方法。

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-2任一项所述的数据库表重命名方法;或者实现如权利要求3-5任一项所述的数据库表查询方法。

...

【技术特征摘要】

1.一种数据库表重命名方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.一种数据库表查询方法,其特征在于,所述方法包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.一种数据库表重命名装置,其特征在于,所述装置包括:

7.一种数据库表查询装置,其特征在于,所述装置包括:

8.一种电子设备,其...

【专利技术属性】
技术研发人员:岳红波王建华
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1