[发明专利]一种ROWID对应关系数据的压缩和解压方法有效
申请号: | 201910485933.7 | 申请日: | 2019-06-05 |
公开(公告)号: | CN110399372B | 公开(公告)日: | 2020-03-27 |
发明(设计)人: | 高志会;李天伟;林广生 | 申请(专利权)人: | 上海英方软件股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;H03M7/30 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 201114 上海市闵行区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rowid 对应 关系 数据 压缩 解压 方法 | ||
本发明提出一种ROWID对应关系数据的压缩和解压方法,属于计算机ORACLE数据库同步领域,充分利用映射块内数据的特点,设置标记字节FLG,逐个判断SLOT是否记录、DBA是否重复、OBJD是否重复、ROWID是否连续,实现压缩,通过判断FLG的比特是否置位,来实现解压;算法简单,执行速度快,对于连续性高的ROWID映射数据有很高的压缩率。
技术领域
本发明属于计算机ORACLE数据库同步领域,具体涉及一种ROWID对应关系数据的压缩和解压方法。
背景技术
ORACLE数据库是一种使用非常广泛的数据库,ORACLE数据库中存储的每一行记录都有一个唯一的标识叫做ROWID,用ROWID可以查询到这条记录。
ROWID分为三部分,OBJD、DBA和SLOT,共10个字节。OBJD占4字节,是ORACLE数据库给每个表、表的分区或者子分区分配的唯一编号;DBA是数据块的编号,占4字节,ORACLE将记录存储在不同的数据块上;一个数据块内可以存储多条记录,同一数据块内的所有记录的ROWID,它们的OBJD和DBA是相同的,记录在块内的编号称为SLOT,占2字节。
为方便描述,以下将源库和目标库的记录的ROWID分别称为源ROWID和目标ROWID。
在做ORACLE数据库同步时,需要将源库的记录同目标库的记录一一对应起来,才能将源库的记录变化正确地更新到目标库。其中的一种方式是采用ROWID映射,即将源ROWID和目标ROWID的对应关系存储下来,在同步针对记录的更新和删除动作时首先根据源记录的ROWID查询目标ROWID,从而对应到目标记录。
在存储ROWID对应关系时,通常是用源库的OBJD,DBA确定具体的存储块,然后每个存储块内存储源SLOT和目标ROWID,每一条记录需要10+2共12个字节,如果一个块内有1000条记录,数据量将达到12000字节。为描述方便,以下将每个源库数据块的ROWID映射数据称为映射块。
映射块需要占用一定的空间,但它有大量相同或者相近的数据,目标SLOT很多时候是连续的,目标OBJD通常是相同值,目标DBA也很容易重复,因此在存储上有很大的压缩空间,鉴于它的查询会很频繁,压缩和解压的速度要快。现有的压缩算法比如zip、minilzo,它们的速度不够,压缩的效果也不理想。
发明内容
本发明的目的在于提出一种ROWID对应关系数据的映射块的压缩和解压方法,能够达到一定的压缩率,并且能快速地压缩解压。
为实现上述目的,本发明采用的技术方案如下:
一种ROWID对应关系数据的压缩方法,包括以下步骤:
对于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记录时,完成压缩。
进一步地,每一段压缩数据均以一个FLG开始,该FLG含有如下8个比特位:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910485933.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置