1 .一种数据库处理查询语句的方法,包括:
获取所述数据库的查询语句;
判断所述查询语句是否包含统计非重复结果的查询操作;
若是,判断所述查询操作针对的数据列是否满足预设的优化条件;
若是,对所述查询操作进行等价逻辑变换,得到等价操作;
由所述数据库的优化器优化所述等价操作,以生成执行计划。
2.根据权利要求1所述的数据库处理查询语句的方法,其中,所述获取所述数据库的查
询语句的步骤包括:
接受对所述数据库的操作语句;
判断操作语句是否包含选择查询;
若是,则提取包含所述选择查询的语句,作为所述查询语句。
3 .根据权利要求1所述的数据库处理查询语句的方法,其中,所述判断所述查询语句是
否包含统计非重复结果的查询操作的步骤包括:
对所述查询语句进行语义分析,以得到分析结果,所述分析结果包含以下任意一项或
多项:所述查询语句的视图、所述查询语句的函数、所述查询语句的父查询或者所述查询语
句中嵌套的子查询;
判断所述分析结果是否同时包含计数函数以及非重复查询操作的关键字;
若是,则确定所述查询语句包含统计非重复结果的查询操作。
4 .根据权利要求3所述的数据库处理查询语句的方法,其中,所述对所述查询操作进行
等价逻辑变换的步骤包括:
新建子查询或者视图替换所述查询操作的数据表;
设置所述子查询或者所述视图的聚集函数参数为否;
将所述数据列投影至所述子查询或者所述视图,作为投影列;
将所述非重复查询操作转换为分组聚集子查询;
更新所述分组聚集子查询的列位置信息。
5 .根据权利要求4所述的数据库处理查询语句的方法,其中,
所述非重复查询操作的关键词为distinct,所述分组聚集子查询函数为group by。
6 .根据权利要求3所述的数据库处理查询语句的方法,其中,所述判断所述查询操作针
对的数据列是否满足预设的优化条件的步骤包括:
查询所述数据列的数据重复度是否在预设的阈值范围内;
若是,则确定所述数据列满足所述优化条件。
7 .根据权利要求6所述的数据库处理查询语句的方法,其中,
所述阈值范围设置为60%到100%。
8.根据权利要求1所述的数据库处理查询语句的方法,其中,
在所述查询语句不包含统计非重复结果的查询操作或者查询操作针对的数据列不满
足所述优化条件的情况下,由所述数据库的优化器直接对查询语句进行优化。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理
器执行时实现根据权利要求1至8任一项所述的数据库处理查询语句的方法。
10 .一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运
权 利 要 求 书
1/2 页
2
评论