特征库的生成方法和装置的制造方法

文档序号:8487840阅读:314来源:国知局
特征库的生成方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据库管理系统的数据采样技术,尤其涉及一种特征库的生成方法和装置。
【背景技术】
[0002]数据库管理系统根据用户输入的SQL (Structured Query Language,结构化查询语言)语句生成对应的执行计划。大多数数据库管理系统,都引入了基于成本的优化器(cost based optimizer, CBO),即数据库管理系统获取执行计划相关的所有信息,通过对这些信息做计算分析,得出所有可行的执行计划中一个代价最小的执行计划作为最终执行计划,以提高数据库管理系统的执行效率。而对数据库记录的采样计算分析,是CBO存在的基石。
[0003]对所有记录进行计算分析,固然可以提高CBO的准确性,但是对于海量记录而言,这样的代价太高,反而会降低数据库管理系统的执行效率。所以,如何在海量的记录中,随机地采样,获取特征记录,并生成特征库显得尤为重要。
[0004]通常,可认为数据库管理系统中的记录是连续存储的,获取特征库的采样过程一般为:相对当前记录偏移A即步长后,获取一个特征记录,再相对偏移该获取到的特征记录相对偏移A’,获取下一个特征记录;反复此过程,最终得到特征库。
[0005]由于数据库中数据分布的不均匀性,目前的数据库管理系统厂商多采用上述随机采样方法获取特征记录,从而生成特征库,但目前公开的资料都没有涉及如何有效地利用随机步长来生成特征库的方法。

【发明内容】

[0006]本发明实施例提供一种特征库的生成方法和装置,以优化特征记录的采集方式。
[0007]第一方面,本发明实施例提供了一种特征库的生成方法,包括:
[0008]根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
[0009]利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于O到所述目标集元规模之间;
[0010]计算所述初始随机步长数组包含的各随机数之和;
[0011]在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
[0012]根据所述目标集元规模对整个目标记录进行划分;
[0013]对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;
[0014]确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
[0015]第二方面,本发明实施例提供了一种特征库的生成装置,包括:
[0016]参数配置模块,用于根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
[0017]初始随机步长数组生成模块,用于利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于O到所述目标集元规模之间;
[0018]目标随机步长数组生成模块,用于计算所述初始随机步长数组包含的各随机数之和;在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
[0019]特征库生成模块,用于根据所述目标集元规模对整个目标记录进行划分;对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
[0020]本发明实施例提供的特征库的生成方法和装置,通过确定目标集元规模,并使用目标集元规模对数据库管理系统存储的指定表中的整个目标记录进行划分得到各集元,通过确定目标集元内特征记录的个数,利用随机种子生成相应的随机数,并将目标集元内特征记录的个数作为初始随机步长数组的容量,得到初始随机步长数组,通过初始随机步长数组包含的各随机数之和与目标集元规模的一致性判断,将符合一致性的初始随机步长数组作为目标随机步长数组,利用目标随机步长数组能够控制在每个集元中采集得到的特征记录的数量,而且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理系统采集特征记录的性能开销,减少了 CBO分析采集到的特征记录的代价,提高了 CBO的分析效率,此外,由于目标随机步长数组包含的各随机数之和与所述目标集元规模一致,对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
【附图说明】
[0021]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1a为本发明实施例一提供的一种特征库的生成方法的流程示意图;
[0023]图1b为本发明实施例一提供的使用目标随机数组在集元内获取特征记录的示意图;
[0024]图2a为本发明实施例二提供的一种特征库的生成方法的流程示意图;
[0025]图2b为本发明实施例二提供的通过一次修正得到目标随机步长数组的流程示意图;
[0026]图2c为本发明实施例二提供的通过二次修正得到目标随机步长数组的流程示意图;
[0027]图3为本发明实施例三提供的一种特征库的生成装置的结构示意图。
【具体实施方式】
[0028]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0029]实施例一
[0030]请参阅图la,为本发明实施例一提供的一种特征库的生成方法的流程示意图。本发明实施例的方法可以由配置以硬件和/或软件实现的特征库的生成装置来执行,该实现装置一般可集成于能够提供特征记录采集服务的服务器中。
[0031]该方法包括:步骤110?步骤170。
[0032]步骤110、根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数。
[0033]具体地,可以包括如下两个步骤:
[0034]计算预设的初始集元规模与预设的采样百分比之积;
[0035]在所述初始集元规模与采样百分比之积小于I时,扩大所述初始集元规模,直至计算到的扩大后的集元规模与采样百分比之积大于等于1,将扩大后的当前集元规模确定为目标集元规模,并将所述目标集元规模与采样百分比之积取整后确定为目标集元内特征记录的个数。
[0036]其中,集元规模是指集元包含的目标记录的总数,所述目标记录存储在数据库管理系统中,数据库管理系统中存储的指定表中的整个目标记录被划分为数个集元。也即,数据库管理系统中存储有很多表,每个表中都存储有不同的记录,而本实施例的划分对象针对的是数据库管理系统中存储的指定表中的整个目标记录。
[0037]目标集元规模与预设的采样百分比之积大于等于1,是指在目标集元规模对应的集元中至少获取一个特征记录。
[0038]例如,假设预设的初始集元规模Gtl为1000,预设的采样百分比为0.09%,计算得到的预设的初始集元规模Gtl与预设的采样百分比之积为0.9,判断到初始集元规模G ^与采样百分比之积0.9小于I,将初始集元规模
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1