CN102103638A - 一种基于查询日志的数据库统计数据直方图生成方法 - Google Patents
一种基于查询日志的数据库统计数据直方图生成方法 Download PDFInfo
- 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
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
现有的约束条件不足以准确解出每个ρ的值,换言之,满足上述条件的ρ值可以有无穷个,只能推断最可能出现的那种情况。按照最大熵的思想,就是在一切不确定中,使得熵最大的状态是最可能出现的,而越均匀则熵越大。为此,定义目标函数,使得在满足上述约束的情况下各个密度尽可能接近,也即使得下式最小:∑(ρi-ρj)2。利用最小二乘法求解上式,得到每个区间的密度值,由于区间的数目非常多,合并密度差距过小的相邻区间,再给出最终区间密度的直方图表示。
本发明采用的技术方案如下:
一种基于查询日志的数据库统计数据直方图生成方法,包括以下步骤:
1)从数据库查询日志中提取查询集合,每个查询对应一个属性,将属性集的左右边界值构成一个数组;
2)对数组进行排序,生成相邻点对构成的基本区间;
3)对不同属性上的区间取笛卡尔积,结果称之为一个立方体;
4)根据每个查询包含的结果行数与立方体的笛卡尔积,得到立方体的密度值;
5)根据立方体的密度值生成直方图。
所述步骤4)判断查询和立方体的覆盖关系,如果某一查询包含对应的立方体,即查询覆盖立方体,将查询覆盖的立方体进行合并。
所述步骤4)令每个立方体Cj的密度为ρj,体积为Sj,1≤j≤(2n+1)d。每个查询Qi返回的元组数目为RCnti,1≤i≤n,满足如下的约束条件:定义目标函数F:目标函数最小的密度分布即为立方体的密度值。
利用最小二乘法求解目标函数,得到每个立方体的密度值。
所述步骤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。
3、将属性映射到一个维度上,每个维上的两个相邻值构成一个区间,从每个维取出一个区间,构成一个d维的立方体,其形式为总共有(2n+1)d个立方体,从1开始对这些立方体依次编号。立方体的笛卡尔积,即每个立方体的体积为Sj,
6、令每个立方体Cj的密度为ρj,体积为Sj,1≤j≤(2n+1)d。每个查询Qi返回的元组数目为RCnti,1≤i≤n。可以等到如下的约束条件:
7、上面的约束条件不足以唯一确定出每个ρj,存在各种可能的分布。根据最大熵原理,对于各种可能性分布来讲,在满足约束的前提下,使得熵最大的分布其出现的可能性最大。而熵最大总是使得分布尽可能的均匀。因此定义目标函数F如下:
问题转化为求在约束条件下,使得目标函数最小的密度分布。对此,利用最小二乘法来求解之。
8、注意到许多连续区域(被一组相同的查询所覆盖)被划分为若干小的立方体,这些立方体的密度是相同的。选出其中一个作为代表即可,这样可以大大减少目标函数中的变量个数。
9、如果两个立方体Ci和Cj(i<j)对应的位向量相同,则它们被相同的查询组所覆盖,它们的密度是相同的。对于密度相同的立方体,选取标号最小的立方体作为代表。经过上述处理之后剩余的作为代表的立方体集合不妨记作Ω={<Ci,ρi>|0≤i≤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)判断查询和立方体的覆盖关系,如果某一查询包含对应的立方体,即查询覆盖立方体,将查询覆盖的立方体进行合并。
5.如权利要求4所述的方法,其特征在于,利用最小二乘法求解目标函数,得到每个立方体的密度值。
6.如权利要求1所述的方法,其特征在于,所述步骤5)在得到立方体的密度值后,根据立方体的密度值,描绘一个立方体柱,代表这个空间的分布密度,生成直方图。
7.如权利要求1所述的方法,其特征在于,将相邻立方体密度差最小的两个进行合并,直到合并后的立方体个数满足要求。
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)
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的方差优化直方图构建方法及装置 |
-
2011
- 2011-01-31 CN CN2011100341591A patent/CN102103638A/zh active Pending
Cited By (9)
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 |