CN102103638A - 一种基于查询日志的数据库统计数据直方图生成方法 - Google Patents

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

Info

Publication number
CN102103638A
CN102103638A CN2011100341591A CN201110034159A CN102103638A CN 102103638 A CN102103638 A CN 102103638A CN 2011100341591 A CN2011100341591 A CN 2011100341591A CN 201110034159 A CN201110034159 A CN 201110034159A CN 102103638 A CN102103638 A CN 102103638A
Authority
CN
China
Prior art keywords
cubical
cube
density
inquiry
histogram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011100341591A
Other languages
English (en)
Inventor
陈立军
汪罕
卢阳
王潇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN2011100341591A priority Critical patent/CN102103638A/zh
Publication of CN102103638A publication Critical patent/CN102103638A/zh
Pending legal-status Critical Current

Links

Images

Abstract

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

Description

一种基于查询日志的数据库统计数据直方图生成方法
技术领域
本发明涉及一种利用查询日志中所包含的查询结果行数信息进行数据库直方图统计信息生成的方法。
背景技术
在数据库系统中,如何有效地生成准确的关于数据分布的统计信息是一个十分重要的基础问题。这些信息被查询优化器用来估计查询计划中相关算子的选择度,估计其执行代价,并选择最优的执行计划。如果统计数据出现误差,误差会在查询计划中呈指数级扩散,导致实际执行的查询计划的性能急剧降低。直方图是最普遍的用来描述数据分布的手段,在目前的商业数据库中被广泛采用。构建直方图需要对原始数据进行扫描或者抽样,对数据排序并且形成合适的桶分区。对于大规模的数据库来讲,构建和维护直方图的代价却是非常高昂的,对于多维直方图更是如此。
在数据库查询日志中记录着每个查询结果的行数,利用这些信息可以推算数据分布。在已有的利用查询日志进行直方图生成的方法中,都是采用增量式更新的方式,也即逐个采用查询来修正直方图,由于缺乏优化目标函数定义,导致所生成的直方图的误差比较大,同时随着查询的逐次到来,需要频繁调整直方图(合并或分裂)。
发明内容
本发明提出一种直方图生成方法,该方法基于数据库查询日志关于查询结果行数的信息,利用最大熵思想,推导出数据密度分布,并以直方图形式表示出来。
本发明方法的原理是:对于一个查询Q,假定其属性形如a1<A<a2,其结果行数为RCnt,那么就可以知道在属性A的[a1,a2]区间的数据分布密度是ρ=RCnt/(a2-a1)。如果有两个查询Q1和Q2,其属性分别为a1<A<a2,b1<A<b2,其结果行数分别为RCnt1,RCnt2,整个区间[a0,b0]总的行数为RCnt0。各区间密度如图6所示,得到如下约束条件:
(b1-a1)×ρ1+(a2-b1)×ρ2=RCnt1
(b2-a2)×ρ3+(a2-b1)×ρ2=RCnt2
(a1-a0)×ρ0+(b1-a1)×ρ1+(a2-b1)×ρ2+(b0-b2)×ρ0=RCnt0
现有的约束条件不足以准确解出每个ρ的值,换言之,满足上述条件的ρ值可以有无穷个,只能推断最可能出现的那种情况。按照最大熵的思想,就是在一切不确定中,使得熵最大的状态是最可能出现的,而越均匀则熵越大。为此,定义目标函数,使得在满足上述约束的情况下各个密度尽可能接近,也即使得下式最小:∑(ρij)2。利用最小二乘法求解上式,得到每个区间的密度值,由于区间的数目非常多,合并密度差距过小的相邻区间,再给出最终区间密度的直方图表示。
本发明采用的技术方案如下:
一种基于查询日志的数据库统计数据直方图生成方法,包括以下步骤:
1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;
2)对数组进行排序,生成相邻点对构成的基本区间;
3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;
4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;
5)根据立方体的密度值生成直方图。
所述步骤4)判断查询和立方体的覆盖关系,如果某一查询包含对应的立方体,即查询覆盖立方体,将查询覆盖的立方体进行合并。
所述步骤4)令每个立方体Cj的密度为ρj,体积为Sj,1≤j≤(2n+1)d。每个查询Qi返回的元组数目为RCnti,1≤i≤n,满足如下的约束条件:
Figure BDA0000046430660000021
定义目标函数F:
Figure BDA0000046430660000022
目标函数最小的密度分布即为立方体的密度值。
利用最小二乘法求解目标函数,得到每个立方体的密度值。
所述步骤5)在得到立方体的密度值后,根据立方体的密度值,描绘一个立方体柱,代表这个空间的分布密度,生成直方图。
将相邻立方体密度差最小的两个进行合并,直到合并后的立方体个数满足要求。
与现有技术相比,本发明的有益效果是:
基于数据库查询日志生成直方图,克服了传统数据库系统通过扫描原始数据生成直方图的代价过高的问题,以及现有利用查询日志进行增量式直方图生成方法的误差过大的问题。同时本发明对于包括倾斜型和锯齿型的各种数据分布都具有非常好的效果。
附图说明
图1为查询集合对数据空间的划分以及不同区域密度分布图;
图2为立方体位向量示意图;
图3为密度估计方法的流程图;
图4为基于直方图的区域密度表达方法流程图;
图5为通过合并区间来生成直方图示意图;
图6为各区间密度示意图。
图7为通过密度值生成密度直方图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
本发明方法基于数据库查询日志关于查询结果行数的信息,利用最大熵思想,推导出数据密度分布,并以直方图形式表示出来。如图3所示,本发明得到密度分布方法的流程如下:首先,从数据库查询日志中得到查询集合Q,令Q={Q1,Q2,...,Qn}是关于属性集A={A1,A2,...,Ad}的查询集合,统一假定每个属性的值域是[1,N],其中查询Qi的形式为(ai1<A1<bi1)^(ai2<A2<bi2)^...^(aid<Ad<bid)。d代表的数据的总的维度,是真实数据中给定的值。查询集合Q对数据空间的划分以及不同区域密度分布图如图1所示。
1、遍历Q中的每个查询Qi,如果Qi的属性集是A的子集,例如{A1,A2,...,Ak},k<d,则在它空缺的A的其他属性上为其添加查询条件1<Aj<N,k<j<=d。
2、对每个查询在每个属性Ai上都投影下一对值ai,bi,整个查询集合Q在属性Ai上投影下2n个值。将这些值合在一起排序,得到一个数值序列S,
Figure BDA0000046430660000031
其中
Figure BDA0000046430660000032
3、将属性映射到一个维度上,每个维上的两个相邻值构成一个区间,从每个维取出一个区间,构成一个d维的立方体,其形式为
Figure BDA0000046430660000041
总共有(2n+1)d个立方体,从1开始对这些立方体依次编号。立方体的笛卡尔积,即每个立方体的体积为Sj
Figure BDA0000046430660000042
4、如果对于Qi,满足下列的不等式组中每一项
Figure BDA0000046430660000043
则称Qi覆盖立方体cube。注意:一个立方体要么完全被一个查询覆盖,要么根本不与这个查询相交。
5、定义一个数组a[i][j],1≤i≤n,1≤j≤(2n+1)d,用以表达查询和立方体的覆盖关系,定义
Figure BDA0000046430660000044
并且定义第j列的列向量为立方体j的位向量,如图2所示。
6、令每个立方体Cj的密度为ρj,体积为Sj,1≤j≤(2n+1)d。每个查询Qi返回的元组数目为RCnti,1≤i≤n。可以等到如下的约束条件:
Σ j = 1 ( 2 n + 1 ) d a [ i ] [ j ] * ρ j * S j = RCnt i , 1 ≤ i ≤ n
7、上面的约束条件不足以唯一确定出每个ρj,存在各种可能的分布。根据最大熵原理,对于各种可能性分布来讲,在满足约束的前提下,使得熵最大的分布其出现的可能性最大。而熵最大总是使得分布尽可能的均匀。因此定义目标函数F如下:
Σ i , j = 1 ( 2 n + 1 ) d ( ρ i - ρ j ) 2
问题转化为求在约束条件下,使得目标函数最小的密度分布。对此,利用最小二乘法来求解之。
8、注意到许多连续区域(被一组相同的查询所覆盖)被划分为若干小的立方体,这些立方体的密度是相同的。选出其中一个作为代表即可,这样可以大大减少目标函数中的变量个数。
9、如果两个立方体Ci和Cj(i<j)对应的位向量相同,则它们被相同的查询组所覆盖,它们的密度是相同的。对于密度相同的立方体,选取标号最小的立方体作为代表。经过上述处理之后剩余的作为代表的立方体集合不妨记作Ω={<Ci,ρi>|0≤i≤K}。
10、以二维为例,经过上述处理之后,立方体的数量可以下降到原来的15%左右。将目标函数F修订为只限于Ω中的立方体的密度的平方和F’:
Figure BDA0000046430660000051
K表示选取代表之后,剩余的标号总数。
11、求解F’的最小值,获得F’取最小值时每个ρj的取值作为密度估计值返回
基于直方图的区域密度表达方法流程如图4所示,用桶代表经过合并后的立方体。设桶的总数是n,需要合并剩下m个桶,p(i)是第i个桶的密度,l(i)是第i个桶的大小(一维上是长度,二维是面积,三维上是体积,四维空间则是一个需要四个不同的相互垂直的方向才能到达其中所有点的空间,这种空间可以认为是许多平行的三维空间的堆积,同理五维就是需要五个相互垂直的方向,可以认为是许多四维空间的堆积,依次类推),合并的阈值是t。
1.如果n小于等于m,跳转到步骤4。
2.计算所有相邻两个桶之间的密度差。
3.取这些密度差值中的最小值
a)如果最小值小于阈值t(比如t取0.2或者0.3,可以根据具体的需要选取阈值),合并密度差最小的两个相邻桶,如图5所示。i和j号桶合并后的密度为(p(i)*l(i)+p(j)*l(j))/(l(i)+l(j))。跳转到步骤1
b)否则,方法进入步骤4。
4.返回合并后的m个桶的密度值。
如图7所示,在得到m个桶的密度值后,针对每个桶,在这个桶对应的空间位置上,根据桶的密度,描绘一个立方体柱,代表这个空间的分布密度,生成直方图。

Claims (7)

1.一种基于查询日志的数据库统计数据直方图生成方法,包括以下步骤:
1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;
2)对数组进行排序,生成相邻点对构成的基本区间;
3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;
4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;
5)根据立方体的密度值生成直方图。
2.如权利要求1所述的方法,其特征在于,所述步骤4)判断查询和立方体的覆盖关系,如果某一查询包含对应的立方体,即查询覆盖立方体,将查询覆盖的立方体进行合并。
3.如权利要求1所述的方法,其特征在于,所述步骤4)令每个立方体Cj的密度为ρj,笛卡尔积为Sj,1≤j≤(2n+1)d,每个查询Qi包含的结果行数为RCnti,1≤i≤n,满足如下的约束条件:
Figure FDA0000046430650000011
得出立方体的密度值。
4.如权利要求3所述的方法,其特征在于,定义目标函数F:
Figure FDA0000046430650000012
目标函数最小的密度分布即为立方体的密度值。
5.如权利要求4所述的方法,其特征在于,利用最小二乘法求解目标函数,得到每个立方体的密度值。
6.如权利要求1所述的方法,其特征在于,所述步骤5)在得到立方体的密度值后,根据立方体的密度值,描绘一个立方体柱,代表这个空间的分布密度,生成直方图。
7.如权利要求1所述的方法,其特征在于,将相邻立方体密度差最小的两个进行合并,直到合并后的立方体个数满足要求。
CN2011100341591A 2010-02-01 2011-01-31 一种基于查询日志的数据库统计数据直方图生成方法 Pending CN102103638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100341591A CN102103638A (zh) 2010-02-01 2011-01-31 一种基于查询日志的数据库统计数据直方图生成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010103444 2010-02-01
CN201010103444.X 2010-02-01
CN2011100341591A CN102103638A (zh) 2010-02-01 2011-01-31 一种基于查询日志的数据库统计数据直方图生成方法

Publications (1)

Publication Number Publication Date
CN102103638A true CN102103638A (zh) 2011-06-22

Family

ID=44156408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100341591A Pending CN102103638A (zh) 2010-02-01 2011-01-31 一种基于查询日志的数据库统计数据直方图生成方法

Country Status (1)

Country Link
CN (1) CN102103638A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015007187A1 (en) * 2013-07-18 2015-01-22 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for providing data statistics
CN105393249A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 针对查询优化的范围分区统计数据的增量式维护
WO2016113648A1 (en) * 2015-01-16 2016-07-21 International Business Machines Corporation Database statistical histogram forecasting
CN107193862A (zh) * 2017-04-01 2017-09-22 国家计算机网络与信息安全管理中心 一种基于Spark Streaming的方差优化直方图构建方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105393249A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 针对查询优化的范围分区统计数据的增量式维护
CN105393249B (zh) * 2013-06-28 2019-11-05 微软技术许可有限责任公司 针对查询优化的范围分区统计数据的增量式维护
WO2015007187A1 (en) * 2013-07-18 2015-01-22 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for providing data statistics
US10353883B2 (en) 2013-07-18 2019-07-16 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for providing data statistics
WO2016113648A1 (en) * 2015-01-16 2016-07-21 International Business Machines Corporation Database statistical histogram forecasting
US9798775B2 (en) 2015-01-16 2017-10-24 International Business Machines Corporation Database statistical histogram forecasting
US10572482B2 (en) 2015-01-16 2020-02-25 International Business Machines Corporation Database statistical histogram forecasting
US11263213B2 (en) 2015-01-16 2022-03-01 International Business Machines Corporation Database statistical histogram forecasting
CN107193862A (zh) * 2017-04-01 2017-09-22 国家计算机网络与信息安全管理中心 一种基于Spark Streaming的方差优化直方图构建方法及装置

Similar Documents

Publication Publication Date Title
Rai et al. A survey of clustering techniques
CN104573705B (zh) 一种建筑物激光扫描点云数据的聚类方法
CN106845536B (zh) 一种基于图像缩放的并行聚类方法
CN102902826B (zh) 一种基于基准图像索引的图像快速检索方法
CN106844664B (zh) 一种基于摘要的时间序列数据索引构建方法
CN103631928A (zh) 一种基于局部敏感哈希的聚类索引方法及系统
CN104537067A (zh) 一种基于k-means聚类的分箱方法
CN104573050A (zh) 一种基于Canopy聚类和BIRCH层次聚类的连续属性离散化方法
CN101017476A (zh) 基于数据动态存取模型的产品点云型面特征分析方法
CN103077228B (zh) 一种基于集合特征向量的快速聚类方法和装置
Xin et al. Computing iceberg cubes by top-down and bottom-up integration: The starcubing approach
CN104731984B (zh) 汽车轮毂表面样点r树上溢结点增量式聚类优化方法
CN102103638A (zh) 一种基于查询日志的数据库统计数据直方图生成方法
CN101692230A (zh) 顾及多细节层次的三维r树空间索引方法
CN108416381B (zh) 一种面向三维点集的多密度聚类方法
CN103473268B (zh) 线性要素空间索引构建方法、系统和检索方法及其系统
CN105183795A (zh) 基于内容的遥感图像变化检测信息检索方法
US8661040B2 (en) Grid-based data clustering method
Rani et al. Comparison of clustering techniques for measuring similarity in articles
Xiao A clustering algorithm based on artificial fish school
CN105138607B (zh) 一种基于混合粒度分布式内存网格索引的knn查询方法
Krznaric et al. Fast algorithms for complete linkage clustering
CN108717444A (zh) 一种基于分布式结构的大数据聚类方法和装置
CN107944015A (zh) 基于模拟退火的三维模型典型结构挖掘与相似性评价方法
Mola et al. Discriminant analysis and factorial multiple splits in recursive partitioning for data mining

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110622