数据库存储对象的处理方法、存储介质与计算机设备与流程

文档序号:33992860发布日期:2023-04-29 15:59阅读:41来源:国知局
数据库存储对象的处理方法、存储介质与计算机设备与流程

本发明涉及数据库技术,特别是涉及一种数据库存储对象的处理方法、存储介质与计算机设备。


背景技术:

1、在现有的数据库技术中,越来越需要存储诸如音乐和视频之类的内容,对于此类数据库存储对象的处理一般有两种方法:数据库中,利用vacuumlo模块(对象处理模块)来实现数据库的异步删除机制,其运行原理如下:

2、1.从对象元信息表中获取所有对象标识并存储到临时表中。

3、2.扫描所有数据库表,如果这些对象标识在表中被使用到,则从临时表中删除。

4、3.步骤2扫描结束后,如果临时表中仍然有数据,说明这些临时表中的对象没有数据库表关联,可以进行删除,则删除值。

5、此方案实现了定时删除对象实例,在一定程度上避免了长期表膨胀问题,但是无法避免瞬时的表空间膨胀问题。

6、第二种处理方法数据库的lo模块(数据处理模块)提供了此类数据库对象的管理机制,lo_manage机制(数据管理机制)避免了在创建时对临时数据库对象进行持久化存储。其具体过程如下:

7、1.语法解析检测sql语句。

8、2.步骤1中如果产生了临时数据库对象,则在内存中记录临时数据库对象标识。

9、3.语句结束检查临时数据库对象是否有数据库表进行关联,如果有关联则无操作;如果没有关联,则说明此数据库对象为孤儿数据库对象,需要进行删除。

10、此方式在一定程度上避免了孤儿数据库对象的产生,从而一定程度上避免了瞬时的数据库对象表膨胀问题。但是此方案在sql语句的执行过程中频繁扫描数据库系统表进行检测,降低了sql语句的执行效率。


技术实现思路

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、本发明的数据库存储对象的处理方法,当对数据库存储对象执行删除操作时,会判断存储对象引用信息表中是否已经存在该数据库存储对象的信息,若是,在存储对象引用信息表中对该引用数据减一特定值;当对数据库存储对象执行插入操作时,也会判断存储对象引用信息表中是否已经存在该数据库存储对象的信息,若是,继续判断数据库存储对象对应的信息是否有效,若是,在存储对象引用信息表中对该引用数据加一特定值;当该引用数据小于预设的删除阈值时,便会触发预设触发器的动作,随后该触发器会删除此引用数据对应的数据库存储对象。通过这样的方法,能够在数据库执行操作语句时,及时地更新存储对象引用信息表中的信息,当引用数据达到触发器的触发条件时,触发器便会自主删除该引用数据对应的数据库存储对象,从而在不影响数据库操作语句执行的情况下,及时地删除没有引用关系的数据库存储对象,避免瞬时表空间膨胀的问题。

31、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。



技术特征:

1.一种数据库存储对象的处理方法,包括:

2.根据权利要求1所述的数据库存储对象的处理方法,其中,

3.根据权利要求1所述的数据库存储对象的处理方法,其中,

4.根据权利要求3所述的数据库存储对象的处理方法,其中,

5.根据权利要求4所述的数据库存储对象的处理方法,其中,

6.根据权利要求3所述的数据库存储对象的处理方法,其中,

7.根据权利要求6所述的数据库存储对象的处理方法,其中,

8.根据权利要求1所述的数据库存储对象的处理方法,其中,

9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库存储对象的处理方法。

10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库存储对象的处理方法。


技术总结
本发明提供了一种数据库存储对象的处理方法、存储介质与计算机设备。其中上述方法包括:从数据库的系统表中获取存储对象引用信息表,存储对象引用信息表用于记录设定类型存储对象的引用数据;获取存储对象引用信息表的更新事件,判断更新的引用数据是否符合删除条件;若是,删除所述更新的引用数据所对应的数据库存储对象。通过这样的方法,可以在不影响数据库操作语句执行的同时,能够及时删除没有引用关系的数据库存储对象,避免瞬时表空间膨胀的问题,提升数据库的性能。

技术研发人员:郭旭,王建华
受保护的技术使用者:北京人大金仓信息技术股份有限公司
技术研发日:
技术公布日:2024/1/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1