优化建议生成及数据库查询方法、装置、设备及存储介质制造方法及图纸

技术编号:23558081 阅读:44 留言:0更新日期:2020-03-25 03:44
本公开提出了一种优化建议生成及数据库查询方法、装置、设备及存储介质。对数据库查询语句中的查询条件进行下推,对下推后的查询条件进行合并,以得到查询条件组合,并且还可以对投影指令进行合并,以得到投影指令组合,基于查询条件组合可以生成索引建议,并且基于查询条件组合和投影指令组合可以生成重写建议。由此,通过遵从数据库编译器的一般处理步骤,可以充分理解数据库的原意,从而能够提高生成的索引建议或重写建议的准确度。

Optimization proposal generation and database query methods, devices, equipment and storage media

【技术实现步骤摘要】
优化建议生成及数据库查询方法、装置、设备及存储介质
本公开涉及数据库领域,特别是涉及一种优化建议生成及数据库查询方法、装置、设备及存储介质。
技术介绍
数据库执行SQL语句之前,一般会经历词法分析、语法分析、语义分析、SQL重写及优化,以及生成执行计划几个阶段。其中SQL重写及SQL优化步骤的目的是为了让SQL选择最佳的执行计划,以便更高效的执行SQL语句。但是选择最佳执行计划是根据当前表定义、统计信息以及现有索引进行选择。通过对数据库创建索引或改写SQL语句,可以使得SQL语句执行更加高效,数据库资源使用率更低。因此,创建合理的索引是提高数据库性能的关键因素之一。但是目前数据库(如关系型数据库管理系统,MySQL)没有提供自动创建索引的方案,通常只能由程序员或DBA(DatabaseAdministrator,数据库管理员)通过自身经验手工创建,实现起来较为繁琐,且人力成本较高。
技术实现思路
本公开的一个目的在于,提出一种通用的优化建议(如索引建议、重写建议)生成方案,以提高数据库查询语句的执行效率。根据本文档来自技高网...

【技术保护点】
1.一种数据库查询语句的优化建议生成方法,包括:/n对所述数据库查询语句中的查询条件进行下推;/n对下推后的查询条件进行合并,以得到查询条件组合;以及/n基于所述查询条件组合生成索引建议。/n

【技术特征摘要】
1.一种数据库查询语句的优化建议生成方法,包括:
对所述数据库查询语句中的查询条件进行下推;
对下推后的查询条件进行合并,以得到查询条件组合;以及
基于所述查询条件组合生成索引建议。


2.根据权利要求1所述的优化建议生成方法,其中,在基于查询条件组合生成索引建议之前,该方法还包括:
剔除所述查询条件组合中不适于使用索引的查询条件。


3.根据权利要求1所述的优化建议生成方法,其中,所述基于查询条件组合生成索引建议的步骤包括:
为所述查询条件组合针对的列创建索引建议。


4.根据权利要求3所述的优化建议生成方法,其中,所述为查询条件组合针对的列创建索引建议的步骤包括:
为所述查询条件组合针对的列创建隐式的索引扫描操作;
基于所述索引扫描操作生成索引建议。


5.根据权利要求1所述的优化建议生成方法,其中,在对所述数据库查询语句中的查询条件进行下推之前,该方法还包括:
对所述数据库查询语句进行解析,以将所述数据库查询语句转换为内部表达式,其中,所述内部表达式包括按照预定顺序连接的查询条件和投影指令。


6.根据权利要求1所述的优化建议生成方法,其中,
对于所述数据库查询语句中针对多个表的查询条件,将所述多个表中返回结果集最小的表作为驱动表,将其他表作为被驱动表,将该查询条件作为每个被驱动表的查询条件。


7.一种数据库查询语句的优化建议生成方法,包括:
对所述数据库查询语句中的查询条件进行下推;
对下推后的查询条件进行合并,以得到查询条件组合;
对所述数据库查询语句中的投影指令进行合并,以得到投影指令组合;以及
基于所述查询条件组合和所述投影指令组合,生成重写建议。


8.根据权利要求7所述的优化建议生成方法,其中,所述生成重写建议的步骤包括:
将所述查询条件组合和所述投影指令组合构成的表达式,作为所述数据库查询语句的重写建议;或者
在由所述查询条件组合和所述投影指令组合构成的表达式不能在数据库的编译器中实现的情况下,基于所述表达式反向生成新的数据库查询语句,作为所述数据库查询语句的重写建议。


9.根据权利要求7所述的优化建议生成方法,其中,在对所述数据库查询语句中的查询条件进行下推之前,该方法还包括:
对所述数据库查询语句进行解析,以将所述数据库查询语句转换为内部表达式,其中,所述内部表达式包括按照预定顺序连接的查询条件和投影指令。

【专利技术属性】
技术研发人员:雷尚顺
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1