System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库,特别是涉及一种数据库索引页面的回收方法及相关产品。
技术介绍
1、基于磁盘的关系数据库大部分都支持btree索引,因为btree索引在并发性能、点查询、范围查询、唯一性支持上能力全面。在部分新增删除较多的场景下,如果索引项大部分是按顺序增加,例如一些时序数据、编号数据,索引会出现新索引项无法使用的空页面,回收重用这些空页面是优化索引空间使用的重要技术。但是btree索引为了更好的并发能力,在扫描时不会做大范围的封锁。页面即使被从树中移除,也无法确定是否有刚放开父亲、兄弟节点页面,链接过来的扫描,难以确定是否可以回收重用。
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、根据本专利技术的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库索引页面的回收方法的步骤。
31、根据本专利技术的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库索引页面的回收方法的步骤。
32、根据本专利技术的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库索引页面的回收方法的步骤。
33、本专利技术的数据库索引页面的回收方法,首先获取数据库中的超时索引对象,超时索引对象是执行时间超过预设时长的执行计划涉及到的索引对象;获取数据库中从索引树上移除的待回收空页面,空页面为经过数据库操作之后导致内部数据记录为空的索引页面,索引对象包含多个索引页面;判断超时索引对象是否包含待回收空页面;若否,则忽略超时索引对象所在的进程中的超时事务号,确定数据库中的最小可见事务号;根据最小可见事务号判断待回收空页面是否符合回收条件;在待回收空页面符合回收条件的情况下,回收待回收空页面。通过此方法能够在回收空页面的过程中,通过细粒度地查询超时索引对象,从而避免由于超长查询导致其他空页面无法正常回收的情况出现,避免了不相关的回收等待,提高了索引空间使用效率。
34、根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
本文档来自技高网...【技术保护点】
1.一种数据库索引页面的回收方法,包括:
2.根据权利要求1所述的数据库索引页面的回收方法,其中,
3.根据权利要求1所述的数据库索引页面的回收方法,其中,
4.根据权利要求3所述的数据库索引页面的回收方法,其中,
5.根据权利要求1所述的数据库索引页面的回收方法,其中,
6.根据权利要求1所述的数据库索引页面的回收方法,其中,
7.根据权利要求6所述的数据库索引页面的回收方法,其中,
8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库索引页面的回收方法的步骤。
9.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库索引页面的回收方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至7任一项所述的数据库索引页面的回收方法的步骤。
【技术特征摘要】
1.一种数据库索引页面的回收方法,包括:
2.根据权利要求1所述的数据库索引页面的回收方法,其中,
3.根据权利要求1所述的数据库索引页面的回收方法,其中,
4.根据权利要求3所述的数据库索引页面的回收方法,其中,
5.根据权利要求1所述的数据库索引页面的回收方法,其中,
6.根据权利要求1所述的数据库索引页面的回收方法,其中,
7.根据权利要求6所述的数据库索引页面的回收方法,其中,
8.一种计算机...
【专利技术属性】
技术研发人员:杨尚,冷建全,孙文奇,
申请(专利权)人:中电科金仓北京科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。