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

基于决策树的数据库代价模型参数优化方法及其查询方法技术

技术编号:36248011 阅读:15 留言:0更新日期:2023-01-07 09:40
本发明专利技术公开了一种基于决策树的数据库代价模型参数优化方法及其查询方法。针对特定软硬件设置下的数据库实例,本发明专利技术建立了一棵数据库代价模型参数树,使用数据库配置参数、查询语句特征作为分裂维度对参数空间进行分区,每个分区中通过对训练样本的线性拟合求解最优的代价模型参数。在运行过程中,参数树为不同参数配置及数据分布下的查询语句分配不同的代价模型参数,从而进行精准的代价预测。实验表明该方法提高了传统基于规则的估计模型的预测准确度,优化了数据库的查询性能。优化了数据库的查询性能。优化了数据库的查询性能。

【技术实现步骤摘要】
基于决策树的数据库代价模型参数优化方法及其查询方法


[0001]本专利技术设计了一种基于决策树的数据库代价模型参数优化方法,属于数据库管理系统软件中的查询优化领域。

技术介绍

[0002]数据库管理系统软件(下文统称数据库)负责完成数据的存储与读取,用户输入查询语句后,数据库将根据生成的执行计划从存储中获取数据并进行相应的处理,返回满足要求的数据。同一条查询语句在数据库中会产生多种可能的执行计划,其差异包括数据扫描方式、表的连接方法、表的连接顺序等。不同的执行计划会产生不同的执行时间,甚至会存在数量级的差距。为了提高数据库的性能,数据库应当能够在执行计划搜索空间中选择执行时间较短的执行计划。
[0003]目前数据库的实现大多采用基于代价的查询优化方法,设置代价模型对不同的查询执行计划进行代价估计,选择代价最小的执行计划予以执行。一个良好的代价模型需要提供准确的代价估计,从而帮助数据库优化查询语句的执行时间,提高数据库的性能;同时,代价模型应当能够快速估计执行计划的代价,因为数据库查询优化器模块在选择执行计划的过程中会多次调用代价模型来评估执行计划的性能。
[0004]传统的基于代价的查询优化方法使用一种基于规则的代价模型,通过读取页面数量、处理元组数量估算操作的执行代价,通过可调整的代价参数允许数据库管理人员根据物理机器的性能进行参数调优。但是,过分简化的代价模型忽略了一些硬软件配置、数据库参数配置、数据集数据分布的影响,导致在数据库实际运行过程中,查询语句的代价估计结果与真实执行代价有所偏差。为此出现了基于学习的代价模型,通过提取数据操作或查询计划的特征预测查询计划的执行代价,提高了代价模型的预测准确度。但是,基于学习的代价模型需要较长的训练、推断时间,并且当数据库配置或数据分布变化时需要重新训练,适用范围较窄。

技术实现思路

[0005]基于规则的代价模型在实现过程中考虑了许多细粒度的特征,与基于学习的代价模型相比有更好的可解释性与通用性,但其效果依赖于参数的选择,而这些参数受到了硬软件配置、数据库参数配置、数据集数据分布的影响。针对现有技术的不足,本专利技术的目的在于提供一种基于决策树的数据库代价模型参数优化方法,根据查询语句运行时的数据库及数据集参数配置情况,为基于规则的代价模型选择最符合实际执行环境的代价模型参数。本专利技术首先确定了影响基于规则的代价模型参数的变量,随后通过预定义的查询语句集合训练得到代价模型参数树的根节点,并在数据库执行工作负载查询语句集合时使用增量学习的方式不断训练代价模型参数树。实际使用时,在给定配置组合的情况下,该模型返回代价模型参数的建议设置,代价模型使用这些参数对执行计划进行代价估计。
[0006]本专利技术所采用的具体技术方案如下:
[0007]第一方面,本专利技术提供了一种基于决策树的数据库代价模型参数优化方法,其包括如下步骤:
[0008]S1、在数据库实例中运行预定义的查询语句集合,得到集合中的每一条查询语句对应的查询语句执行结果;从每一条查询语句执行结果中分别提取数据操作的关键特征以及执行时间,作为一个第一训练样本;利用所有第一训练样本作为拟合数据,对线性模型形式的代价模型进行拟合,将拟合得到的代价模型参数初始值作为代价模型参数树的根节点;
[0009]S2、执行数据库工作负载中的不同查询语句,且针对每个查询语句以最新的代价模型参数树作为决策树,通过数据库配置参数与查询语句特征在决策树中导航至对应节点,从而确定用于计算不同执行计划代价的代价模型参数,并从查询语句执行结果中提取数据操作的关键特征以及执行时间,作为对应节点关联的第二训练样本;当决策树中一个节点关联的第二训练样本达到节点分裂条件时,以数据库配置参数和查询语句特征为可分裂维度,对代价模型参数树采用基于模型的递归分区(Model

based Recursive Partitioning,MOB)方法进行节点分裂从而形成对应不同子空间的子节点,再将父节点上的第二训练样本对应划分至各子节点上并分别拟合得到各子节点对应的代价模型参数;
[0010]S3、不断执行S2,以增量学习方式对决策树进行迭代训练从而不断进行节点分裂,使得训练后的决策树上不同叶子节点分别拥有对应于不同数据库配置参数和查询语句特征的代价模型参数;最终以训练后的决策树为给定数据库配置参数下的查询语句确定代价模型参数,用于供数据库实例估计执行计划的代价。
[0011]在上述技术方案基础上,本专利技术还可以进一步提供以下优选方式。且本专利技术各个优选方式中的技术特征在没有相互冲突的前提下,均可进行相应组合。
[0012]作为上述第一方面的优选,所述S1中,所述预定义的查询语句集合为针对测试数据集生成的单表扫描语句的集合,每条单表扫描语句包含索引扫描和顺序扫描两种数据操作。
[0013]作为上述第一方面的优选,所述S1中,所述数据操作的关键特征包括顺序读取磁盘页面的次数N
s
、随机读取磁盘页面的次数N
r
、操作符或函数的执行次数N
o
、查询中处理的数据行数N
t
、索引扫描中处理的索引项个数N
i

[0014]作为上述第一方面的优选,所述S1中,所述代价模型的形式为
[0015]Cost=N
t
×
r
t
+N
o
×
r
o
+N
i
×
r
i
+N
s
×
r
s
+N
r
×
r
r
[0016]式中:Cost表示代价,r
t
表示一次顺序磁盘页面抓取的代价估计,r
r
表示对一次随机读取磁盘页面的代价估计,r
o
表示一次查询中处理每个操作符或函数的代价估计,r
t
表示对一次查询中处理每一行的代价估计,r
i
表示一次索引扫描中处理每一个索引项的代价估计。
[0017]作为上述第一方面的优选,所述S1中,在对线性模型形式的代价模型进行拟合时,通过最小化目标函数得到最优的代价模型参数将该代价模型参数作为代价模型参数树的根节点元素;其中,I为所有第一训练样本组成的训练样本集合,第i个训练样本的误差项r=[r
t
,r
o
,r
i
,r
s
,r
r
]T
是待优化的数据库代价模型参数,x
i
=[N
t
,
N
o
,N
i
,N
s
,N
r
]T
是第i个训练样本中查询语句执行结果中数据操作的关键特征,是第i个训练样本的代价估计结果,是第i个训练样本实际的执行时间。
[0018]作为上述第一方面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于决策树的数据库代价模型参数优化方法,其特征在于,包括如下步骤:S1、在数据库实例中运行预定义的查询语句集合,得到集合中的每一条查询语句对应的查询语句执行结果;从每一条查询语句执行结果中分别提取数据操作的关键特征以及执行时间,作为一个第一训练样本;利用所有第一训练样本作为拟合数据,对线性模型形式的代价模型进行拟合,将拟合得到的代价模型参数初始值作为代价模型参数树的根节点;S2、执行数据库工作负载中的不同查询语句,且针对每个查询语句以最新的代价模型参数树作为决策树,通过数据库配置参数与查询语句特征在决策树中导航至对应节点,从而确定用于计算不同执行计划代价的代价模型参数,并从查询语句执行结果中提取数据操作的关键特征以及执行时间,作为对应节点关联的第二训练样本;当决策树中一个节点关联的第二训练样本达到节点分裂条件时,以数据库配置参数和查询语句特征为可分裂维度,对代价模型参数树采用基于模型的递归分区(Model

based Recursive Partitioning,MOB)方法进行节点分裂从而形成对应不同子空间的子节点,再将父节点上的第二训练样本对应划分至各子节点上并分别拟合得到各子节点对应的代价模型参数;S3、不断执行S2,以增量学习方式对决策树进行迭代训练从而不断进行节点分裂,使得训练后的决策树上不同叶子节点分别拥有对应于不同数据库配置参数和查询语句特征的代价模型参数;最终以训练后的决策树为给定数据库配置参数下的查询语句确定代价模型参数,用于供数据库实例估计执行计划的代价。2.如权利要求1所述的基于决策树的数据库代价模型参数优化方法,其特征在于,所述S1中,所述预定义的查询语句集合为针对测试数据集生成的单表扫描语句的集合,每条单表扫描语句包含索引扫描和顺序扫描两种数据操作。3.如权利要求2所述的基于决策树的数据库代价模型参数优化方法,其特征在于,所述S1中,所述数据操作的关键特征包括顺序读取磁盘页面的次数N
s
、随机读取磁盘页面的次数N
r
、操作符或函数的执行次数N
o
、查询中处理的数据行数N
t
、索引扫描中处理的索引项个数N
i
。4.如权利要求3所述的基于决策树的数据库代价模型参数优化方法,其特征在于,所述S1中,所述代价模型的形式为Cost=N
t
×
r
t
+N
o
×
r
o
+N
i
×
r
i
+N
s
×
r
s
+N
r
×
r
r
式中:Cost表示代价,r
t
表示一次顺序磁盘页面抓取的代价估计,r
r
表示对一次随机读取磁盘页面的代价估计,r
o
表示一次查询中处理每个操作符或函数的代价估计,r
t
表示对一次查询中处理每一行的代价估计,r
i
表示一次索引扫描中处...

【专利技术属性】
技术研发人员:伍赛贺婷婷杨佳妮陈刚陈珂寿黎但
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1