当前位置: 首页 > 专利查询>北京大学专利>正文

一种基于查询日志的数据库统计数据直方图生成方法技术

技术编号:6047402 阅读:324 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种基于查询日志的数据库统计数据直方图生成方法,包括以下步骤:1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;2)对数组进行排序,生成相邻点对构成的基本区间;3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;5)根据立方体的密度值生成直方图。本发明专利技术的方法基于数据库查询日志生成直方图,克服了传统数据库系统通过扫描原始数据生成直方图的代价过高的问题,以及现有利用查询日志进行增量式直方图生成方法的误差过大的问题。

Histogram generation method of database statistics based on query log

The invention provides a database statistics histogram generation method based on query log, which comprises the following steps: 1) from the database query log extraction query set, each query corresponds to an attribute, constitute an array of attributes about the boundary value; 2) logarithmic group sort of basic interval composed of adjacent formation point; 3) of different interval on the properties of Descartes product, called the results of a cube; 4) according to Descartes each query contains the results of the number of lines and the cube of the product, obtained the cube density; 5) according to the density histogram cube. The method of the invention is based on the database query log histogram overcomes the problem by scanning the original data to produce the histogram of the high cost of traditional database system, and the error of the existing query logs using incremental histogram method to generate too much problem.

【技术实现步骤摘要】

本专利技术涉及一种利用查询日志中所包含的查询结果行数信息进行数据库直方图 统计信息生成的方法。
技术介绍
在数据库系统中,如何有效地生成准确的关于数据分布的统计信息是一个十分重 要的基础问题。这些信息被查询优化器用来估计查询计划中相关算子的选择度,估计其执 行代价,并选择最优的执行计划。如果统计数据出现误差,误差会在查询计划中呈指数级扩 散,导致实际执行的查询计划的性能急剧降低。直方图是最普遍的用来描述数据分布的手 段,在目前的商业数据库中被广泛采用。构建直方图需要对原始数据进行扫描或者抽样,对 数据排序并且形成合适的桶分区。对于大规模的数据库来讲,构建和维护直方图的代价却 是非常高昂的,对于多维直方图更是如此。在数据库查询日志中记录着每个查询结果的行数,利用这些信息可以推算数据分 布。在已有的利用查询日志进行直方图生成的方法中,都是采用增量式更新的方式,也即逐 个采用查询来修正直方图,由于缺乏优化目标函数定义,导致所生成的直方图的误差比较 大,同时随着查询的逐次到来,需要频繁调整直方图(合并或分裂)。
技术实现思路
本专利技术提出一种直方图生成方法,该方法基于数据库查询日志关于查询结果行数 的信息,利用最大熵思想,推导出数据密度分布,并以直方图形式表示出来。本专利技术方法的原理是对于一个查询Q,假定其属性形如< A < ,其结果行数 为RCnt,那么就可以知道在属性A的区间的数据分布密度是P = RCnt/( - )。 如果有两个查询Q1和Q2,其属性分别为a1<A<a2,b1<A< b2,其结果行数分别为RCnt1, RCnt2,整个区间总的行数为RCn、。各区间密度如图6所示,得到如下约束条件Oo1-Ei1) X P !+(B^b1) Xp2 = RCnt1(b2-a2) Xp3+ (B^b1) Xp2 = RCnt2(ara0) Xp0+ (Vei1) Xp1+ (Ei2Hd1) Xp2+ (b0_b2) Xp0 = RCnt0现有的约束条件不足以准确解出每个P的值,换言之,满足上述条件的P值可 以有无穷个,只能推断最可能出现的那种情况。按照最大熵的思想,就是在一切不确定中, 使得熵最大的状态是最可能出现的,而越均勻则熵越大。为此,定义目标函数,使得在满足 上述约束的情况下各个密度尽可能接近,也即使得下式最小Σ (Pi-P P2。利用最小二乘 法求解上式,得到每个区间的密度值,由于区间的数目非常多,合并密度差距过小的相邻区 间,再给出最终区间密度的直方图表示。本专利技术采用的技术方案如下,包括以下步骤1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;2)对数组进行排序,生成相邻点对构成的基本区间;3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;5)根据立方体的密度值生成直方图。所述步骤4)判断查询和立方体的覆盖关系,如果某一查询包含对应的立方体,即 查询覆盖立方体,将查询覆盖的立方体进行合并。所述步骤4)令每个立方体Cj的密度为Pj,体积为Sj, 1≤j≤(2n+l) dO每个查询Qi返回的元组数目为RCnti, 1 < i < n,满足如下的约束条件权利要求1.,包括以下步骤1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界 值构成一个数组;2)对数组进行排序,生成相邻点对构成的基本区间;3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;5)根据立方体的密度值生成直方图。2.如权利要求1所述的方法,其特征在于,所述步骤4)判断查询和立方体的覆盖关系, 如果某一查询包含对应的立方体,即查询覆盖立方体,将查询覆盖的立方体进行合并。3.如权利要求1所述的方法,其特征在于,所述步骤4)令每个立方体(^.的密度为Pj, 笛卡尔积为I,1彡j彡(2n+l)d,每个查询A包含的结果行数为RCnti, 1彡i彡n,满足如(2n+\)d下的约束条件4.如权利要求3所述的方法,其特征在于,定义目标函数F:5.如权利要求4所述的方法,其特征在于,利用最小二乘法求解目标函数,得到每个立 方体的密度值。6.如权利要求1所述的方法,其特征在于,所述步骤5)在得到立方体的密度值后,根据 立方体的密度值,描绘一个立方体柱,代表这个空间的分布密度,生成直方图。7.如权利要求1所述的方法,其特征在于,将相邻立方体密度差最小的两个进行合并, 直到合并后的立方体个数满足要求。全文摘要本专利技术提供,包括以下步骤1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;2)对数组进行排序,生成相邻点对构成的基本区间;3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;5)根据立方体的密度值生成直方图。本专利技术的方法基于数据库查询日志生成直方图,克服了传统数据库系统通过扫描原始数据生成直方图的代价过高的问题,以及现有利用查询日志进行增量式直方图生成方法的误差过大的问题。文档编号G06F17/30GK102103638SQ201110034159公开日2011年6月22日 申请日期2011年1月31日 优先权日2010年2月1日专利技术者卢阳, 汪罕, 王潇, 陈立军 申请人:北京大学本文档来自技高网...

【技术保护点】
1.一种基于查询日志的数据库统计数据直方图生成方法,包括以下步骤:1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;2)对数组进行排序,生成相邻点对构成的基本区间;3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;5)根据立方体的密度值生成直方图。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:陈立军汪罕卢阳王潇
申请(专利权)人:北京大学
类型:发明
国别省市:11

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

1