[发明专利]一种ROWID对应关系数据的压缩和解压方法有效

专利信息
申请号: 201910485933.7 申请日: 2019-06-05
公开(公告)号: CN110399372B 公开(公告)日: 2020-03-27
发明(设计)人: 高志会;李天伟;林广生 申请(专利权)人: 上海英方软件股份有限公司
主分类号: G06F16/22 分类号: G06F16/22;H03M7/30
代理公司: 北京君尚知识产权代理有限公司 11200 代理人: 邱晓锋
地址: 201114 上海市闵行区*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 rowid 对应 关系 数据 压缩 解压 方法
【权利要求书】:

1.一种ROWID对应关系数据的压缩方法,ROWID包括由ORACLE数据库给每个表、表的分区或者子分区分配的唯一编号OBJD、存储ORACLE数据库的记录的数据块编号DBA以及记录在数据块内的编号SLOT,其特征在于,该方法包括以下步骤:

对于ROWID对应关系数据,从源SLOT 0开始,判断当前源SLOT有没有记录,如果没有,则统计后面连续没有记录的SLOT的个数,输出标记字节FLG;如果有,则生成新的标记字节FLG,输出目标SLOT,并根据SLOT是否小于256更新FLG;

判断当前目标DBA是否与前面的DBA有重复,如果没有,则输出新的DBA并记录;如果有,则输出DBA的索引,并根据DBA的索引号是否小于256更新FLG;

判断当前目标OBJD是否与前面的OBJD有重复,如果没有,则输出新的OBJD并记录;如果有,则输出OBJD的索引,并根据OBJD的索引号是否小于256更新FLG;

判断后续是否有目标ROWID和当前连续,如果有,则输出连续个数,并根据连续个数是否小于256更新FLG;

执行上述步骤直到没有ROWID记录时,完成压缩。

2.如权利要求1所述的压缩方法,其特征在于,统计后面连续没有记录的SLOT的个数不超过127个。

3.如权利要求1所述的压缩方法,其特征在于,判断后续是否有目标ROWID和当前连续的标准是OBJD和DBA是否与当前目标ROWID相同,且目标SLOT连续递增。

4.如权利要求1所述的压缩方法,其特征在于,如果还有ROWID记录,则进一步判断当前源SLOT有没有记录,并执行后续操作。

5.如权利要求1所述的压缩方法,其特征在于,每一段压缩数据均以一个FLG开始,该FLG含有如下8个比特位:

比特7:源SLOT无记录标记位,置此位,则另外7位代表连续多少个SLOT没有记录;

比特6:目标SLOT占1字节还是2字节;

比特5:新目标DBA标记,置此位,代表着遇到了新DBA,压缩数据包含4字节的DBA;反之,代表遇到了使用过的DBA,压缩数据包含DBA的索引;

比特4:DBA索引占1字节还是2字节;

比特3:新目标OBJD标记,置此位,代表着遇到了新OBJD,压缩数据包含4字节的OBJD;反之,代表遇到了使用过的OBJD,压缩数据包含OBJD的索引;

比特2:OBJD索引占1字节还是2字节;

比特1:表示目标ROWID是连续的,压缩数据包含连续ROWID的个数;

比特0:连续的ROWID个数占1字节还是2字节。

6.如权利要求5所述的压缩方法,其特征在于,所述根据SLOT是否小于256更新FLG,是指如果SLOT小于256,输出1字节,否则输出2字节,更新FLG比特6。

7.如权利要求5所述的压缩方法,其特征在于,所述根据DBA的索引号是否小于256更新FLG,是指如果DBA的索引号小于256,输出1字节,否则输出2字节,更新FLG比特5和4。

8.如权利要求5所述的压缩方法,其特征在于,所述根据OBJD的索引号是否小于256更新FLG,是指如果OBJD的索引号小于256,则输出1字节,否则输出2字节,更新FLG比特3和2。

9.如权利要求5所述的压缩方法,其特征在于,所述根据连续个数是否小于256更新FLG,是指如果连续个数小于256,则输出1字节,否则输出2字节,更新FLG比特1和0。

10.一种ROWID对应关系数据的解压方法,ROWID包括由ORACLE数据库给每个表、表的分区或者子分区分配的唯一编号OBJD、存储ORACLE数据库的记录的数据块编号DBA以及记录在数据块内的编号SLOT,其特征在于,该方法包括以下步骤:

对于ROWID对应关系数据的数据包,取当前标记字节FLG,如果比特7置位,则取出其另7个比特的数值N,并将连续N个源SLOT标记为无记录,然后重复该步骤;

如果比特7未置位,则按比特6的指示取出1或2字节的目标SLOT;

如果FLG的比特5置位,则取出4字节的目标DBA并记录,否则按照比特4的指示取出1或2字节的DBA索引号,然后用该索引在DBA记录中取出目标DBA;

如果FLG的比特3置位,则取出4字节的目标OBJD并记录,否则按照比特4的指示取出1或2字节的OBJD索引号,然后用该索引在OBJD记录中取出目标OBJD;

如果FLG的比特1置位,则按照比特0指示取出1或2字节作为连续ROWID的数量,并生成相应数量的连续ROWID;

执行上述步骤直到没有未解压数据,完成解压。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910485933.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top