顺序索引生成系统及方法

文档序号:6488919阅读:98来源:国知局
顺序索引生成系统及方法
【专利摘要】一种顺序索引生成系统及方法,应用于计算机中,该计算机包括输入设备以及存储器。该方法包括步骤:接收从输入设备输入的需要插入的资料索引信息;检查存储在存储器中的资料库中索引列表的最末尾索引序号;根据资料库中的资料容量产生一个m位进制数;计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值;将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引;将该有序资料索引插入索引列表的最末位置,并将该索引列表保存在存储器的资料库中。本发明能够在资料插入资料库过程中避免产生磁盘碎片而使存储空间不连续的问题,从而提高资料库的运行效率。
【专利说明】顺序索引生成系统及方法
【技术领域】
[0001]本发明涉及一种资料索引生成系统及方法,特别是关于一种生成顺序索引的系统及方法。
【背景技术】
[0002]在资料库的设计基础上,能有效地使用索引是资料库取得高性能的基础。如果有索引指向资料,则查询资料时只需读几次磁盘,可以避免扫描整个资料库。如果建立了合理的索引,就能利用索引加速资料的查询过程。但是,索引并不是总能提高系统性能,在增加、删除、修改等操作更新索引会增加一定的工作量。因为资料库的更新会消耗掉已有的存储空间,这就会导致资料页(data page)被拆分,降低了索引的性能,因而使用该索引的查询会影响数据存储的性能。
[0003]SQL Server聚集索引是通过二叉树结构来组织数据页的,只有叶子节点实际存储资料。每一个叶子节点为一资料页,每一资料页是不可分割的。当叶子节点中新插入的节点或更新的节点使得叶子节点无法容纳当前更新或者插入的节点时,此时分页就产生了。在分页的过程中,就会产生磁盘碎片。很多情况下分页后和原来的资料页在磁盘上并不连续,大大提升系统资源的消耗,造成性能下降。
[0004]为了消除磁盘碎片,需要停止旧有索引并重建索引,并重新设置用于指示该索引中资料页百分比的填充因子。在绝大多数情况下,重建索引可以更好的消除碎片,但是这会操作当前发生在该索引所在资料列表的资料,这将影响到当前资料库的运行,使资料库的易用性降低。

【发明内容】

[0005]鉴于以上内容,有必要提供一种顺序索引生成系统及方法,能够在资料插入资料库过程中避免产生磁盘碎片而使存储器的存储空间不连续的问题,从而提高资料库的运行效率。
[0006]所述的顺序索引生成系统安装并运行于计算机中,该计算机包括输入设备以及存储器。该顺序索引生成系统包括:资料接收模块,用于接收从输入设备输入的需要插入的资料索引信息,并检查存储在存储器中的资料库中索引列表的最末尾索引序号;有序值计算模块,用于根据资料库中的资料容量产生一个m位进制数,以及计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值;索引生成模块,用于将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引;索引保存模块,用于将该有序资料索引插入索引列表的最末位置,并将该索引列表保存在存储器的资料库中。
[0007]所述的顺序索引生成方法应用于计算机中,该计算机包括输入设备以及存储器。该方法包括步骤:接收从输入设备输入的需要插入的资料索引信息;检查存储在存储器中的资料库中索引列表的最末尾索引序号;根据资料库中的资料容量产生一个m位进制数;计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值;将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引;以及将该有序资料索引插入索引列表的最末位置,并将该索引列表保存在存储器的资料库中。
[0008]相较于现有技术,本发明所述的顺序索引生成系统及方法,能够保证每次插入到资料库时产生的索引都排在索引列表的最末位置,避免在新增资料时,资料库需重建索引造成的存储空间开销,提高资料库的运行效率。
【专利附图】

【附图说明】
[0009]图1是本发明顺序索引生成系统较佳实施例的架构图。
[0010]图2是本发明顺序索引生成方法较佳实施例的流程图。 [0011]图3是一种资料库中索引列表的示意图。
[0012]图4是在资料索引插入资料库中索引列表的示意图。
[0013]主要元件符号说明
[0014]计算机1
[0015]顺序索引生成系统 10
[0016]资料接收模块101
[0017]有序值计算模块102
[0018]索引生成模块103
[0019]索引保存模块104
[0020]输入设备11
[0021]存储器12
[0022]处理器13
【具体实施方式】
[0023]如图1所示,是本发明顺序索引生成系统10较佳实施例的架构图。在本实施例中,所述的顺序索引生成系统10安装并运行于计算机1中,能够保证每次插入到资料库时产生的索引都排在索引列表的最末位置,避免在新增资料时,资料库需重建索引造成的存储空间开销,提高资料库的运行效率。在本实施例中,所述的计算机1还包括,但不仅限于,输入设备11、存储器12以及处理器13。
[0024]所述的存储器12可以为一种磁盘或网络存储装置,其包括用于存储索引列表以及资料内容的资料库。参考图3所示,是一种资料库中索引列表的示意图。该索引列表存储有序数列值、资料索引以及资料内容。其中,有序数列值用于识别不同类别的资料内容,例如有序数列值10000001、10000002等。每一资料索引分别对应有存储在存储器12中的资料内容。例如资料索引Index_l对应于资料内容Data_l,以及资料索引Index_2对应于资料内容Data_2。
[0025]在本实施例中,所述的顺序索引生成系统10包括资料接收模块101、有序值计算模块102、索引生成模块103以及索引保存模块104。本发明所称的模块是指一种能够被计算机1的处理器13所执行并且能够完成固定功能的一系列程序指令段,其存储于计算机1的存储器12中。
[0026]所述的资料接收模块101用于接收从输入设备11输入的需要插入资料库中的资料索引信息,并检查资料库中索引列表的最末尾索引序号。在本实施例中,所述的资料索引信息包括资料索引以及资料内容。参考图3所示,资料索引Index_l对应于资料内容Data_l,资料索引Index_2对应于资料内容Data_2。
[0027]所述的有序值计算模块102用于根据资料库中的资料容量产生一个m位进制数,以及计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值。在本实施例中,所述的m位进制数包括二进制数、四进制数、八进制数、十进制数、十六进制数,以及三十二进制数等。例如,当资料库中的资料容量行数为1632960行,则有序值计算模块102产生4位十六进制数。当资料库中的资料容量行数为58786560行,则有序值计算模块102产生一个5位三十二进制数。所述的有序数列值是根据最末尾索引序号产生的按顺序递增的序列数值。
[0028]所述的索引生成模块103用于将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引。在本实施例中,索引生成模块103将有序数列值与索引信息叠加组合或者利用hash函数产生一个有序的唯一资料索引。其中,所述的唯一资料索引可以是一种全球唯一标示符(Globally Unique Identifier,⑶ID),也可以是其它能保证唯一性的数据列或多列组合数据。
[0029]所述的索引保存模块104用于将资料索引插入索引列表的最末位置,并将该有序索引列表保存在存储器12的资料库中。参考图4所示,是在资料索引插入资料库中的索引列表的示意图。当需要插入资料库的资料索引序号为“35”时,索引生成模块103根据资料索引序号“35”广生的有序资料索引为“50”,并将该有序资料索引插入到索引列表的最末位置“40”处。因此,在资料插入资料库过程中,能够避免磁盘碎片而使存储器12的存储空间不连续的问题。
[0030]参考图2所示,是本发明顺序索引生成方法较佳实施例的流程图。在本实施例中,该方法能够保证每次插入到资料库时产生的索引都排在索引列表的最末位置,避免在新增数据时资料库需重建索引造成的存储空间开销,从而提高资料库的运行效率。
[0031]步骤S21,资料接收模块101接收从输入设备11输入的需要插入资料库中的资料索引信息。在本实施例中,所述的资料索引信息包括资料索引以及资料内容。参考图3所示,资料索引Index_l对应于资料内容Data_l,资料索引Index_2对应于资料内容Data_2。
[0032]步骤S22,资料接收模块101检查资料库中索引列表的最末尾索引序号。参考图3所示,资料接收模块101扫描资料库中索引列表,并检查出索引列表的最末尾索引序号为“40”。
[0033]步骤S23,有序值计算模块102根据资料库中的资料容量产生一个m位进制数。例如资料库中的资料容量行数为1632960行,则有序值计算模块102产生4位十六进制数。例如资料库中的资料容量行数为58786560行,则有序值计算模块102产生一个5位三十二进制数。
[0034]步骤S24,有序值计算模块102计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值。在本实施例中,有序值计算模块102产生一个指定位数的m进制位进制数后,利用该m进制位进制数根据该最末尾索引序号计算有序数列值,如图4所示的有序数列值“50,,。
[0035]步骤S25,索引生成模块103将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引。在本实施例中,索引生成模块103将有序数列值与索引信息叠加组合或者利用hash函数产生一个有序的唯一资料索引。
[0036]步骤S26,索引保存模块104将资料索引插入索引列表的最末位置,并将该有序索引列表保存在存储器12的资料库中。参考图4所示,当需要插入资料库的资料索引序号为“35”时,索引生成模块103根据资料索引序号“35”产生的有序数列值“50”作为有序资料索引,并将该有序资料索引插入到索引列表的最末位置“40”处。
[0037]以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换都不应脱离本发明技术方案的精神和范围。
【权利要求】
1.一种顺序索引生成系统,安装并运行于计算机中,该计算机包括输入设备以及存储器,其特征在于,所述的顺序索引生成系统包括: 资料接收模块,用于接收从输入设备输入的需要插入的资料索引信息,并检查存储在存储器中的资料库中索引列表的最末尾索引序号; 有序值计算模块,用于根据资料库中的资料容量产生一个m位进制数,以及计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值; 索引生成模块,用于将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引;以及 索引保存模块,用于将该有序资料索引插入索引列表的最末位置,并将该索引列表保存在存储器的资料库中。
2.如权利要求1所述的顺序索引生成系统,其特征在于,所述的索引生成模块将有序数列值与索引信息进行叠加组合或者利用hash函数处理有序数列值与索引信息来产生有序资料索引。
3.如权利要求1所述的顺序索引生成系统,其特征在于,所述的有序数列值是根据最末尾索引序号产生的按顺序递增的序列数值。
4.如权利要求1所述的顺序索引生成系统,其特征在于,所述的索引列表存储有序数列值、资料索引以及资料内容,该有序数列值用于识别不同类别的资料内容,每一资料索引分别对应有资料内容。
5.如权利要求1所述的顺序索引生成系统,其特征在于,所述的m位进制数包括二进制数、四进制数、八进制数、十进制数、十六进制数,以及三十二进制数。
6.一种顺序索引生成方法,应用于计算机中,该计算机包括输入设备以及存储器,其特征在于,该方法包括步骤: 接收从输入设备输入的需要插入的资料索引信息; 检查存储在存储器中的资料库中索引列表的最末尾索引序号; 根据资料库中的资料容量产生一个m位进制数; 计算索引列表的最末尾索引序号的m位进制数生成一个有序数列值; 将有序数列值与需要插入的资料索引信息组合产生一个有序的资料索引;以及 将该有序资料索引插入索引列表的最末位置,并将该索引列表保存在存储器的资料库中。
7.如权利要求6所述的顺序索引生成方法,其特征在于,所述的有序资料索引是通过将有序数列值与索引信息进行叠加组合或者利用hash函数处理有序数列值与索引信息而产生的。
8.如权利要求6所述的顺序索引生成方法,其特征在于,所述的有序数列值是根据最末尾索引序号产生的按顺序递增的序列数值。
9.如权利要求6所述的顺序索引生成方法,其特征在于,所述的索引列表存储有序数列值、资料索引以及资料内容,该有序数列值用于识别不同类别的资料内容,每一资料索引分别对应有资料内容。
10.如权利要求6所述的顺序索引生成方法,其特征在于,所述的m位进制数包括二进制数、四进制数、八进制数、十进制数、十六进制数,以及三十二进制数。
【文档编号】G06F17/30GK103678384SQ201210346446
【公开日】2014年3月26日 申请日期:2012年9月18日 优先权日:2012年9月18日
【发明者】李忠一, 谢德意, 陈海云, 罗安胜 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1