【技术实现步骤摘要】
一种合取范式概率约束的化简方法及其应用
[0001]本专利技术属于数据库技术以及负载仿真领域,尤其涉及一种合取范式概率约束的化简方法及其应用。
技术介绍
[0002]如今,传统的基准评测(如SSB,TPC
‑
H,TPC
‑
DS)已经难以模拟越来越多的应用场景。当需要对数据库系统进行评测或者需要进行应用迁移的时候,对于原始应用场景的模拟和仿真变得越来越重要。
[0003]对于这个问题,SIGMOD2007年的QAGen
[2]提出了查询感知数据库生成器
[1
‑
7],其通过分析具体工作负载的查询计划,生成一个用于测试的仿真数据库和一组仿真查询,使得在使用相同的查询计划时,在生成的仿真数据库上的执行的仿真查询和在原始数据库的执行的原始查询有相同的中间结果(即每个对应算子的输入和输出相同),使得数据库生成器能够获得与查询性能相关的特征。这对于数据库的性能评测有很大的帮助,尤其是在HTAP数据库中,中间结果集的大小是查询性能的一项非常重要的指标。
[0004]在进行负载仿真的过程中,最重要的就是使得每个算子满足相应的概率约束,即给定原查询中的一个选择算子和它在仿真查询中对应的选择算子,两个算子的输入行数和输出行数都相等。过去的工作
[1
‑
7]适配的谓词要么是简单的关系表达式,要么是简单的逻辑表达式(即仅仅包含AND或者OR这两个逻辑运算符中其中一个的逻辑表达式),对于复杂的逻辑表达式(即同时包含AND和OR这两个 ...
【技术保护点】
【技术特征摘要】
1.一种合取范式概率约束的化简方法,其特征在于,包括如下步骤:步骤一、抽取析取子句:给定一个合取范式概率约束,所述概率约束的SQL谓词的形式为合取范式表达式,抽取所述合取范式表达式中的析取子句;所述析取子句包括单个关系表达式或若干个关系表达式的析取式;步骤二、减少有效的析取子句:若步骤一中的析取子句为单个关系表达式,则通过将其参数设定为边界值的方式,判断它的逻辑值是否能够设置为真,若能够,则削减该析取子句;若步骤一中的析取子句为若干个关系表达式的析取式,则只要其中任意一个关系表达式的逻辑值能够设置为真,则削减该析取子句;若所有析取子句都能够被削减,则保留任意一个析取子句;步骤三、减少有效的关系表达式:对于步骤二中剩余的析取子句,对其中每一个关系表达式进行判断,通过将其参数设定为边界值的方式,判断它的逻辑值是否能够设置为假,若能够,则削减该子关系表达式;若步骤二中剩余的子句数量超过一个,则每个的析取子句化简结果必为单个等值关系表达式,对每个析取子句化简得到的单个等值关系表达式做合取操作,作为最终返回的关系表达式;若步骤二中剩余的子句数量为一个,则析取子句化简结果必为单个关系表达式,或者多个非等值关系表达式的析取式;最后用通过减少析取子式和减少关系表达式化简后的表达式代替原始表达式,得到化简后的概率约束。2.如权利要求1所述的针对合取范式概率约束的化简方法,其特征在于,在所述步骤一中,合取范式概率约束的形式为P(Conjunction)=pb,表示在数据库中的某个表满足SQL谓词条件Conjunction的元组数占该表总元组数的百分比为Pb,其中谓词条件Conjunction满足合取范式。3.如权利要求1所述的针对合取范式概率约束的化简方法,其特征在于,在所述步骤一中,SQL谓词中合取范式表达式为多个析取字句的合取形式,即CL1∧CL2…
CL
n
。4.如权利要求1所述的针对合取范式概率约束的化简方法,其特征在于,在所述步骤二中,关系表达式Predicate的形式为xΘp,其中x为单个变量或者算数表达式,p为参数,Θ为关系运算符,包括>,<,≥,≤,=,≠,in,not in,like,not like;其中Predicate=为等值关系表达式,即关系运算符为=,in,like的关系表达式;Predicate
≠
为非等值关系表达式,即关系运算符为≠,not in,not like的关系表达式;Predicate
<>
为不等值关系表达式,即关系运算符为<,≤,>,≥的关系表达式。5.如权利要求1所述的针对合取范式概率约束的化简方法,其特征在于,在所述步骤二中,当析取子句CL为若干个关系表达式的析取形式时,表示为CL=Predicate1∨Predicate2∨
…
Predicate
n
,Predicate
i
为关系表达式。6.如权利要求1所述的针对合取...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。