行迁移消除方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:32881950 阅读:13 留言:0更新日期:2022-04-02 12:15
本申请涉及云数据技术领域,提供了一种行迁移消除方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:检测存在行迁移的记录行,确定所述记录行对应的行标识,基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块,确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间,当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针,减少了数据库额外的I/O操作,从整体上提升了数据库的数据处理性能。体上提升了数据库的数据处理性能。体上提升了数据库的数据处理性能。

【技术实现步骤摘要】
行迁移消除方法、装置、计算机设备和存储介质


[0001]本申请涉及云数据
,特别是涉及一种行迁移消除方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]在oracle(关系数据库管理系统)中修改非行链接的行时,修改后的行长度大于修改前的行长度,且该数据块无法容纳修改后的行时,会将整行的数据迁移到另一个数据块上,并且在原数据块中保留指向该行新位置的指针,这种情况为行迁移。当查询出现行迁移的数据时会引起数据库性能下降,会产生额外的I/O操作。
[0003]传统的方案是将存在行迁移的数据存入临时表,删除原来表中存在行迁移的数据,再将临时表的数据取出重新插入到原来表后,删除临时表。但这种处理方式没有考虑外键约束的情况,会导致无法删除有外键约束的存在行迁移的数据行,影响数据库性能。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高数据库性能的行迁移消除方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种行迁移消除方法。所述方法包括:
[0006]检测存在行迁移的记录行,确定所述记录行对应的行标识;
[0007]基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;
[0008]确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;
[0009]当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。
[0010]在其中一个实施例中,所述确定所述原始数据块的剩余空闲空间,包括:
[0011]获取所述原始数据块对应的数据块标识;
[0012]以所述数据块标识为索引条件,定位数据表中与所述原始数据块对应的记录信息;
[0013]从所述记录信息中得到所述原始数据块的剩余空闲空间。
[0014]在其中一个实施例中,所述从所述记录信息中得到所述原始数据块的剩余空闲空间,包括:
[0015]从所述记录信息中获取所述原始数据块的总存储空间以及所述原始数据块中每一记录行对应的已占用存储空间的空间大小;
[0016]累加所述记录行对应的已占用存储空间的空间大小,得到所述原始数据块对应的累计占用存储空间;
[0017]基于所述原始数据块对应的总存储空间和所述累计占用存储空间,得到所述原始数据块的剩余空闲空间。
[0018]在其中一个实施例中,所述检测存在行迁移的记录行,确定所述记录行对应的行标识,包括:
[0019]基于行迁移行为对应的数据存储方式,从信息表中筛选出表征行迁移行为的目标信息表;
[0020]基于所述目标信息表,确定存在行迁移的记录行以及所述记录行对应的行标识。
[0021]在其中一个实施例中,所述基于所述目标信息表,确定存在行迁移的记录行以及所述记录行对应的行标识,包括:
[0022]基于所述目标信息表,将产生行迁移行为的记录行所对应的行标识记录到数据字典表;
[0023]遍历所述数据字典表,确定存在行迁移的记录行以及所述记录行对应的行标识。
[0024]在其中一个实施例中,所述方法还包括:
[0025]按照预设周期,触发针对记录行的行迁移消除任务;
[0026]当所述剩余空闲空间小于当前记录行的存储空间、且不存在存储空间小于或等于所述剩余空闲空间的记录行时,结束当前周期的行迁移消除任务。
[0027]第二方面,本申请还提供了一种行迁移消除装置。所述装置包括:
[0028]检测模块,用于检测存在行迁移的记录行,确定所述记录行对应的行标识;
[0029]数据库查找模块,用于基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;
[0030]空间确定模块,用于确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;
[0031]行迁移消除模块,用于当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。
[0032]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0033]检测存在行迁移的记录行,确定所述记录行对应的行标识;
[0034]基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;
[0035]确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;
[0036]当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。
[0037]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0038]检测存在行迁移的记录行,确定所述记录行对应的行标识;
[0039]基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;
[0040]确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;
[0041]当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。
[0042]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0043]检测存在行迁移的记录行,确定所述记录行对应的行标识;
[0044]基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;
[0045]确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;
[0046]当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。
[0047]上述行迁移消除方法、装置、计算机设备、存储介质和计算机程序产品,通过检测存在行迁移的记录行,确定记录行对应的行标识,便于进行记录行的定位,基于行标识,查找记录行进行行迁移后所在的当前数据块、以及记录行进行行迁移前所在的原始数据块,确定记录行迁移前后分别所在的位置,确定原始数据块的剩余空闲空间以及记录行所需占用的存储空间,以便进行空间大小的比较,当剩余空闲空间不小于存储空间时,将当前数据块中的记录行迁移到原始数据块中,并删除原始数据块中指向当前数据块的指针,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种行迁移消除方法,其特征在于,所述方法包括:检测存在行迁移的记录行,确定所述记录行对应的行标识;基于所述行标识,查找所述记录行进行行迁移后所在的当前数据块、以及所述记录行进行行迁移前所在的原始数据块;确定所述原始数据块的剩余空闲空间以及所述记录行所需占用的存储空间;当所述剩余空闲空间不小于所述存储空间时,将所述当前数据块中的记录行迁移到所述原始数据块中,并删除所述原始数据块中指向所述当前数据块的指针。2.根据权利要求1所述的方法,其特征在于,所述确定所述原始数据块的剩余空闲空间,包括:获取所述原始数据块对应的数据块标识;以所述数据块标识为索引条件,定位数据表中与所述原始数据块对应的记录信息;从所述记录信息中得到所述原始数据块的剩余空闲空间。3.根据权利要求2所述的方法,其特征在于,所述从所述记录信息中得到所述原始数据块的剩余空闲空间,包括:从所述记录信息中获取所述原始数据块的总存储空间以及所述原始数据块中每一记录行对应的已占用存储空间的空间大小;累加所述记录行对应的已占用存储空间的空间大小,得到所述原始数据块对应的累计占用存储空间;基于所述原始数据块对应的总存储空间和所述累计占用存储空间,得到所述原始数据块的剩余空闲空间。4.根据权利要求1所述的方法,其特征在于,所述检测存在行迁移的记录行,确定所述记录行对应的行标识,包括:基于行迁移行为对应的数据存储方式,从信息表中筛选出表征行迁移行为的目标信息表;基于所述目标信息表,确定存在行迁移的记录行以及所述记录行对应的行标识。5.根据权利要求4所述的方法,其特征在于,所述基于所述目标信息...

【专利技术属性】
技术研发人员:金鑫
申请(专利权)人:平安证券股份有限公司
类型:发明
国别省市:

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

1