【技术实现步骤摘要】
这里描述的主题涉及分区的数据库表的操纵。
技术介绍
近些年来,计算机处理硬件的中央处理单元(CPU)已经基本上体验到了最大的性能提高,这些提高主要是通过处理器核心数目的增加而实现的,而非通过提高时钟速率实现的。因此,为了最大化性能,通过允许并行执行以及具有与核心的数量良好匹配(scalewell)的体系结构,如今的软件有利地利用了多核CPU的优势。对于数据管理系统而言,要充分利用并行处理能力所带来的优势,一般需要将存储的数据分区成多个扇区(section)或“分区”,以便对它们并行执行计算。数据库程序或者数据库管理系统一般用具有行和列的二维表的形式来显示数据。但是,数据典型地存储为一维数据串。基于行的存储典型地将行中的值一起串行化(serialize),然后是下一行中的值,这样持续下去,相应地,基于列的存储将列的值一起串行化,然后是下一列中的值,这样持续下去。一般而言,当需要对于许多行计算聚集(aggregate)但只是所有数据列中显然较小的子集时,基于列的系统有着更高的效率,这是因为读取较小的子集相比于读取所有数据而言将会更为快捷。当一列中的新值被即刻提供给所 ...
【技术保护点】
一种包括存储指令的机器可读介质的计算机程序产品,当所述指令由至少一个可编程处理器执行时,使得所述至少一个可编程处理器执行下列操作,包括:应用估计算法以生成代表数据库表的列中的数据的唯一性度量,所述列被跨越多个数据分区来划分;通过比较所述唯一性度量与阈值,将所述列分类为有类别的或无类别的;将第一估计因子和第二估计因子之一分配给所述列,如果所述列被分类为有类别的,则所述分配包括第一估计因子,如果所述列被分类为无类别的,则所述分配包括第二估计因子,第二估计因子大于第一估计因子;计算对在所述数据库表执行数据库操作所需的系统资源的成本估计,所述成本估计包括使用分配的第一估计因子或第二 ...
【技术特征摘要】
2011.12.23 US 13/336,9281.一种包括存储指令的机器可读介质的计算机程序产品,当所述指令由至少一个可编程处理器执行时,使得所述至少一个可编程处理器执行下列操作,包括: 应用估计算法以生成代表数据库表的列中的数据的唯一性度量,所述列被跨越多个数据分区来划分; 通过比较所述唯一性度量与阈值,将所述列分类为有类别的或无类别的; 将第一估计因子和第二估计因子之一分配给所述列,如果所述列被分类为有类别的,则所述分配包括第一估计因子,如果所述列被分类为无类别的,则所述分配包括第二估计因子,第二估计因子大于第一估计因子; 计算对在所述数据库表执行数据库操作所需的系统资源的成本估计,所述成本估计包括使用分配的第一估计因子或第二估计因子以及作为估计函数的输入的所述表中的行数而确定的、跨越所述多个数据分区中所有分区的所述列中的不同值的估计的总数;并且改进所述成本估计。2.如权利要求1所述的计算机程序产品,其中,改进所述成本估计包括使用在开发至少部分操作计划中的成本估计,用于执行涉及按照最优次序的数据库表的至少一个列和其它列的一个或多个数据库操作,经由与计算系统或设备相关联的显示设备显示成本估计,发送包含成本估计的电子消息给用户或者另一个机器,并且生成包括成本估计的报告。3.如权利要求2所述的计算机程序产品,其中,所述一个或多个数据库操作包含联接。4.如权利要求1所述的计算机程序产品,其中,所述估计算法包括: 选择多个数据分区中的一个数据分区; 查询所选择的数据分区的字典有关在所选择的数据分区中的所述列中唯一值的总数,所述字典包括在所选择的 数据分区中的所述列的唯一值的列表; 计算唯一值的总数与所选择的数据分区中包含的所述列的行数的比值; 假定所述比值代表了多个数据分区中所有其它数据分区中的唯一值的分布;以及 返回所计算的比值作为唯一性度量。5.如权利要求1所述的计算机程序产品,其中,所述估计算法包括: 查询字典有关多个数据分区的两个或更多个数据分区中的每一个数据分区,所述字典包括所述两个或更多个数据分区中的每一个数据分区中的所述列的唯一值的列表,所述查询包括请求随机采样,所述随机采样包括有关所述两个或更多个数据分区中的每一个数据分区的所述列中的预设数量的唯一值; 比较有关两个或更多个数据分区中的每一个数据分区的从字典返回的所述随机采样;以及 返回所述唯一性度量作为随机采样之间的相异程度。6.如权利要求1所述的计算机程序产品,其中,所述估计算法包括: 请求来自多个数据分区的一个或多个所选择的数据分区中的每一个数据分区的字典返回具有相同的特定大小的各自的Bloom过滤器,每一个字典包括其各自的数据分区中的所述列的唯一值的列表;以及 基于从所述一个或多个所选择的数据分区中返回的Bloom过滤器被填充的程度来返回所述唯一性度量。7.一种系统,包括:至少一个可编程的处理器;以及 存储指令的机器可读介质,所述指令在由至少一个处理器运行时,使得至少一个可编程处理器执行以下操作,包括: 应用估计算法以生成代表数据库表的列中的数据的唯一性度量,所述列被跨越多个数据分区来划分; 通过比较所述唯一性度量与阈值,将所述列分类为有类别的或无类别的; 将第一估计因子和第二估计因子之一分配给所述列,如果所述列被分类为有类别的,则所述分配包括第一估计因子,如果所述列被分类为无类别的,则所述分配包括第二估计因子,第二 估计因子大于第一估计因子; 计算对在所述数据库表执行数据库操作所需的系统资源的成本估计,所述成本估计包括使用分配的第一估计因子或第二估计因子以及作为估计函数的输入的所述表中的行数而确定的、跨越所述多个数据分区中所有分区的所述列中的不同值的估计的总数;并且改进所述成本估计。8.如权利要求7所述的系统,其中,改进所述成本估计包括使用在开发至少部分操作计划中的成本估计,用于执行涉及按照最优次序的数据库表的至少一个列和其它列的一个或多个数据库操作,经由与计算系统或设备相关联的显示设备显示成本估计,发送包含成本估计的电子消息给用户或者另一个机器,并且生成包括成本估计的报告。9.如权利要求8所述的系统,其中,所述一个或多个数据库操作包含联接。10.如权利要求...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。