一种基于探索价值和查询代价的数据库查询优化方法
申请人信息
- 申请人:凯美瑞德(苏州)信息科技股份有限公司; 西北工业大学太仓长三角研究院
- 申请人地址:215124 江苏省苏州市工业园区八达街118号
- 发明人: 凯美瑞德(苏州)信息科技股份有限公司; 西北工业大学太仓长三角研究院
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于探索价值和查询代价的数据库查询优化方法 |
| 专利类型 | 发明申请 |
| 申请号 | CN202410018425.9 |
| 申请日 | 2024/1/5 |
| 公告号 | CN117520385A |
| 公开日 | 2024/2/6 |
| IPC主分类号 | G06F16/2453 |
| 权利人 | 凯美瑞德(苏州)信息科技股份有限公司; 西北工业大学太仓长三角研究院 |
| 发明人 | 孟江华; 姜栋琛; 冯杰明; 金轲; 董鸿毅; 陈群; 刘海龙; 张枨昊 |
| 地址 | 江苏省苏州市工业园区八达街118号; 江苏省苏州市太仓市科教新城子冈路27号 |
摘要文本
更多数据: 本发明提供了一种基于探索价值和查询代价的数据库查询优化方法,通过负载预测来推断未来的查询模板分布,通过机器学习进行基数估计进而估计每个查询的查询代价。本发明优化了传统学习只对当前的查询进行代价估计的策略,使得查询估计面向未来和当前的结合来选择最优的查询执行计划。本发明的查询方法提出的探索价值的定义,使得当前查询的查询计划对于未来预测的查询的价值能够具象化,进而为数据库查询优化提供更深入的见解和决策支持。
专利主权项内容
1.一种基于探索价值和查询代价的数据库查询优化方法,其特征在于包括下述步骤:步骤1:数据库中的执行引擎将历史执行的执行计划以及执行计划所对应的真实基数数据存入缓存池中,接着利用回归模型对缓存池中的数据进行离线训练和建模,得到基数模型M;步骤2:优化器从数据库管理系统中获取当前的查询语句,优化器基于当前的查询语句生成对应的所有查询计划,并利用在步骤1训练完成的基数模型M和数据库本身的基数估计模块,对所有的查询计划进行基数估计,最后再采用数据库本身的代价估计模块对每个执行计划进行代价估计,从而得到每个查询计划的估计代价;步骤3:通过数据库管理系统执行查询操作的记录和日志,获取数据库管理系统的历史查询,历史查询包括历史执行的查询语句的代码和模板、查询操作执行所花费的时间及查询操作返回的结果数据,利用该历史查询进行未来查询的预测,得到查询模板分布P;步骤4:根据步骤2得到的所有查询计划,将每一个执行计划分解为若干个子执行计划,分别估计各个子计划节点对每个查询模板的提升度V(v,v…,v…,v),其中v指子计划节点i对于查询模板p的提升度,n是查询模版个数;12,i,nii步骤5:结合步骤3得到的查询模板分布P(p,p,…,p,…,p)和步骤4得到的提升度V(v,v…,v…,v),通过得到各个子计划节点的探索价值,其中/>为探索价值,Plan指各个子计划节点,如同代价估计一样,累加执行计划上的所有子计划节点的探索价值,得到该执行计划的探索价值,即:12in12,i,n
;其中,Query为执行计划;步骤6:根据最优化条件对所有查询计划进行筛选,得到最优的查询计划,即在保证所选执行计划的代价低于给定阈值的条件下,选择探索价值最大的执行计划,并将该查询计划发送给执行引擎。