【技术实现步骤摘要】
基于决策树的数据库代价模型参数优化方法及其查询方法
[0001]本专利技术设计了一种基于决策树的数据库代价模型参数优化方法,属于数据库管理系统软件中的查询优化领域。
技术介绍
[0002]数据库管理系统软件(下文统称数据库)负责完成数据的存储与读取,用户输入查询语句后,数据库将根据生成的执行计划从存储中获取数据并进行相应的处理,返回满足要求的数据。同一条查询语句在数据库中会产生多种可能的执行计划,其差异包括数据扫描方式、表的连接方法、表的连接顺序等。不同的执行计划会产生不同的执行时间,甚至会存在数量级的差距。为了提高数据库的性能,数据库应当能够在执行计划搜索空间中选择执行时间较短的执行计划。
[0003]目前数据库的实现大多采用基于代价的查询优化方法,设置代价模型对不同的查询执行计划进行代价估计,选择代价最小的执行计划予以执行。一个良好的代价模型需要提供准确的代价估计,从而帮助数据库优化查询语句的执行时间,提高数据库的性能;同时,代价模型应当能够快速估计执行计划的代价,因为数据库查询优化器模块在选择执行计划的过程中会多次调用代价模型来评估执行计划的性能。
[0004]传统的基于代价的查询优化方法使用一种基于规则的代价模型,通过读取页面数量、处理元组数量估算操作的执行代价,通过可调整的代价参数允许数据库管理人员根据物理机器的性能进行参数调优。但是,过分简化的代价模型忽略了一些硬软件配置、数据库参数配置、数据集数据分布的影响,导致在数据库实际运行过程中,查询语句的代价估计结果与真实执行代价有所偏差。为此出 ...
【技术保护点】
【技术特征摘要】
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
表示一次索引扫描中处...
【专利技术属性】
技术研发人员:伍赛,贺婷婷,杨佳妮,陈刚,陈珂,寿黎但,
申请(专利权)人:浙江大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。