数据库系统中的统计视图的管理技术方案

技术编号:2916161 阅读:300 留言:0更新日期:2012-04-11 18:40
提供一种管理数据库系统中的统计视图的方法、计算机程序产品和系统。所述方法、计算机程序产品和系统提供以下操作:收集在所述数据库系统中与工作负载的优化和执行相关的数据;和基于所收集的优化和执行数据自动产生一个或多个统计视图的集。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总的涉及数据库系统。更具体地,本专利技术涉及数据库系统中的统计视图的管理
技术介绍
关系数据库系统在组织成行和列的表中存储数据。从而能够响应于用户命令有效和方便地存储和访问大量数据。典型地,以SQL(结构化查询语言)语句,例如SELECT、INSERT、DELETE和UPDATE的形式提交用户命令。由于SQL是说明性语言,即,SQL仅指定访问什么数据,而不是如何访问该数据,所以数据库系统包括优化器,其对于访问数据的不同方案进行规划并评估这些方案,以基于例如成本或规则选择一个方案用于执行。对于基于成本的优化器,“正确的”方案(即考虑到资源、时间、或两者组合的最低成本的方案)的挑选取决于对于优化器可用的统计信息(即,关于要访问的基础数据的信息)。数据库系统通常保存一些非常基础的统计信息,例如,基础表的大小和列数据分布。使用这些基础统计信息,可精确评估某些操作,例如简单谓词(“col=value”)的成本。然而,与某些操作相关的成本很难评估。例如,对于连接操作的基数(即,在结果集中的行数)公知地难以评估。此外,一旦错误评估对于连接操作的基数,那么错误将传播到随后的操作。为了提高优化器的性能,数据库管理员可选择手动声明为了数据库系统处理的各种操作而收集的统计信息相关视图(即,统计视图)。然而,由于可为数据库系统声明的统计视图数目没有限制,所以在成本很快超过-->利益的情况下,手动声明和保存所有这些视图是不切实际的。例如,将需要额外的存储装置来存储各种统计视图。此外,目前保存统计视图所涉及的成本太高。此外,在编译执行方案时采用优化器在所有统计视图中搜索的时间占有太多的负载。此外,不仅需要对产生统计视图的处理自动化,而且还要均衡最小化优化器错误的需求以及与产生和保存统计视图相关的成本。
技术实现思路
提供一种管理数据库系统中的统计视图的方法、计算机程序产品和系统。所述方法、计算机程序产品和系统提供以下操作:收集在所述数据库系统中与工作负载的优化和执行相关的数据;和基于所收集的优化和执行数据自动产生一个或多个统计视图的集,,所述工作负载包括多个子表达式,所述一个或多个统计视图中的每一个对应于所述工作负载中的所述多个子表达式中的一个。附图说明图1是根据本专利技术一方面用于管理数据库系统中的统计视图的方法处理流程图。图2示出根据本专利技术一个实施方式的数据库系统。图3描述根据本专利技术实施例用于管理数据库系统中的统计视图的方法的流程图。图4是可实现本专利技术实施例的数据处理系统的框图。具体实施方式本专利技术总的涉及数据库系统,更具体地,涉及数据库系统中的统计视图的管理。提供以下说明,以使得本领域普通技术人员能够制造和使用本专利技术,并且在专利申请的上下文及其需求中提供以下说明。对于本领域普通技术人员,对于这里所述的优选实施方式和一般原理和特征的各种修改-->将容易变得清楚。因此,本专利技术不限于所示的实施方式,但是可记录与这里所述的原理和特征一致的更广泛的范围。图1示出根据本专利技术一方面用于管理数据库系统中的统计视图的处理100。在102,收集与数据库系统中的工作负载的优化和执行相关的数据。工作负载是逻辑上分在一起的用以实现某个结果的一组命令,例如,SQL(结构化查询语言)语句。每个工作负载包括可以是SQL语句整体或一部分的多个子表达式。与工作负载的优化和执行相关的数据可包括例如由数据库系统中的优化器所评估的子表达式(例如,连接操作)的基数,以及从子表达式的执行所获得的结果集的实际基数。在104,基于所收集的优化和执行数据自动产生一个或多个统计视图的集。所述一个或多个统计视图中的每一个对应于在工作负载中的多个子表达式中的一个。统计视图包含与子表达式的结果相关的统计信息(例如,基数、唯一值的数目、最频繁的值等)。相比之下,子表达式的具体化视图包括子表达式的实际结果。在一个实施方式中,所产生的统计视图的数目小于在工作负载中的子表达式的数目。例如,仅对于优化器出现错误(例如不正确的基数评估,即可以是无效谓词依赖性假设、较大n路连接操作等的结果)的那些子表达式产生统计视图。也可以对于优化器经常遇到的或具有困难的那些子表达式产生统计视图(例如,需要更多时间计算评估)。从而,均衡了与产生统计视图相关的成本以及最小化优化器错误的需求。图2示出根据本专利技术实施例的数据库系统200。数据库系统200包括:优化器202、执行引擎204、模块206和数据库208。在其他实施例中,数据库系统200可包括附加数据库和组件(未示出)。由优化器202接收工作负载210以用于处理。工作负载210可经由网络(未示出)由连接至数据库系统200的客户端应用(未示出)提交。对于工作负载210中的每个SQL语句,优化器202将规划执行方案,并选择那些方案中的一个用于由执行引擎204执行。然后,通过模块206收集与工作负载210的优化和执行相关的统计信息。-->基于所收集的优化和执行数据,模块206将自动产生一个或多个统计视图的集。每个统计视图对应于工作负载210中多个子表达式中的一个。这些统计视图可存储在数据库208中的目录(未示出)中。在其他实施例中,模块206可以是优化器202的一部分。为了均衡与产生和保存统计视图相关的成本以及最小化优化器错误的需求,模块206并非对于工作负载210中的每个子表达式自动产生统计视图。例如,仅对于由优化器202发生错误的那些子表达式产生统计视图。模块206可通过比较优化统计信息和执行统计信息来检测错误。模块206也可通过检查和消除副本统计视图来减少在数据库系统200中保存的统计视图数目。在与2个统计视图对应的子表达式相同或在一个子表达式是另一个子表达式的前缀时,统计视图是另一个统计视图的副本。在产生或批处理产生一个或多个统计视图的每个新的集之后,即在产生一个或多个统计视图的几个新的集之后,可执行这种冗余检查。在确定统计视图是否为副本时,模块206可认为统计视图已经产生的并保持在数据库208中的目录中。并非删除新创建的统计视图,而是由于在预先存在的统计视图中的统计信息可能失效,所以模块206消除预先存在的统计视图。也可以通过将非常类似的统计视图归纳在一个归纳的统计视图中来减少统计视图的数目。归纳的统计视图是这样一个示图,其表示几个子表达式EX1,EX2,…,EXn的并且从可通过应用已知操作缩减为任意子表达式EXi(其中i=1至n)的子表达式EXG得到。例如,假设对于以伪SQL码所写的以下子表达式中的每一个产生统计视图:SELECT C2 FROM T1WHERE Condition and C1=5 GROUP BY C3    [1]SELECT C2 FROM T1WHERE Condition and C1=7 GROUP BY C3    [2]由于子表达式[1]和[2]仅是常数不同,所以有利于将基于那些子表达式的统计视图归纳到独立于该常数的一个统计视图中。这种归纳的统计视图-->将表示同样以伪SQL码所写的以下子表达式:SELECT C2,C1 FROM T1WHERE Condition GROUP BY C3,C1    [3]然后,可删除对应于子表达式[1]和[2]的统计视图。重要的是,概括统计视图的决定必须与对于常数的精确统本文档来自技高网
...

【技术保护点】
一种管理数据库系统中的统计视图的方法,该方法包括: 收集在所述数据库系统中与工作负载的优化和执行相关的数据,所述工作负载包括多个子表达式;和 基于所收集的优化和执行数据自动产生一个或多个统计视图的集,所述一个或多个统计视图中的每 一个对应于所述工作负载中的所述多个子表达式中的一个。

【技术特征摘要】
【国外来华专利技术】US 2006-3-14 11/374,8121.一种管理数据库系统中的统计视图的方法,该方法包括:收集在所述数据库系统中与工作负载的优化和执行相关的数据,所述工作负载包括多个子表达式;和基于所收集的优化和执行数据自动产生一个或多个统计视图的集,所述一个或多个统计视图中的每一个对应于所述工作负载中的所述多个子表达式中的一个。2.如权利要求1所述的方法,其中所产生的统计视图的数目小于所述工作负载中的子表达式的数目。3.如权利要求1所述的方法,还包括:从所述一个或多个统计视图的集去除至少一个副本统计视图。4.如权利要求1所述的方法,还包括:形成一组或多组统计视图,所述一组或多组统计视图中的每一组包括来自所述一个或多个统计视图的集中的至少两个统计视图;和将所述一组或多组统计视图中的至少一组归纳到一个统计视图中。5.如权利要求1所述的方法,还包括:形成一组或多组统计视图,所述一组或多组统计视图中的每一组包括来自所述一个或多个统计视图的集中的至少两个统计视图;和将所述一组或多组统计视图中的至少一组合并到一个统计视图中。6.如权利要求1所述的方法,其中所述数据库系统包括预先存在的一个或多个统计视图的集,并且该方法还包括:去除至少一个副本统计视图,所述至少一个副本统计视图来自所述一个或多个统计视图的集或所述预先存在的一个或多个统计视图的集。7.如权利要求1所述的方法,其中所述数据库系统包括预先存在的一个或多个统计视图的集,并且该方法还包括:形成一组或多组统计视图,所述一组或多组统计视图中的每一组包括至少两个统计视图,所述至少两个统计视图来自所述一个或多个统计视图的集、所述预先存在的一个或多个统计视图的集、或两者;和将所述一组或多组统计视图中的至少一组归纳到一个统计视图中。8.如权利要求1所述的方法,其中所述数据库系统包括预先存在的一个或多个统计视图的集,并且该方法还包括:形成一组或多组统计视图,所述一组或多组统计视图中的每一组包括至少两个统计视图,所述至少两个统计视图来自所述一个或多个统计视图的集、所述预先存在的一个或多个统计视图的集、或两者;和将所述一组或多组统计视图中的至少一组合并到一个统计视图中。9.一种包括计算机可读介质的计算机程序产品,所述计算机可读介质包括管理数据库系统中的统计视图的计算机可读程序,其中所述计算机可读程序在计算机上执行时使得计算机执行以下步骤:收集在所述数据库系统中与工作负载的优化和执行相关的数据,所述工作负载包括多个子表达式;和基于所收集的优化和执行数据自动产生一个或多个统计视图的集,所述一个或多个统计视图中的每一个对应于所述工作负载中的所述多个子表达式中的一个。10.如权利要求9所述的计算机程序产品,其中所产生的统计视图的数目小于所述工作负载中的子表达式的数目。11.如权利要求9所述的计算机程序产品,其中所述计算机可读程序在计算机上执行时还使得计算机执行以下步骤:从所述一个或多个统计视图的集去除至少一个副本统计视图。12.如权利要求...

【专利技术属性】
技术研发人员:M坎迪尔VG马克尔DC齐利奥CP祖扎特A莱纳
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1