【技术实现步骤摘要】
数据库查询语句的优化方法、存储介质与计算机设备
[0001]本专利技术涉及数据库技术,特别是涉及一种数据库查询语句的优化方法、存储介质与计算机设备。
技术介绍
[0002]关系型数据库一般采用结构化查询语言(Structured Query Language,简称SQL)进行查询,对一个给定的查询语句,通常存在多种可能的策略,查询优化就是从中找出最有效的查询执行计划的处理过程。针对同一个查询语句,不同的执行计划的代价上可能存在非常大的区别。数据库系统的优化器的任务就是生成优选的查询执行。
[0003]查询结果中可能会出现重复值,在需要仅仅列出不重复的结果时,可以采用DISTINCT关键词,用于返回唯一不同的。对于形如select distinct
…
的SQL语句,优化器在处理时,无论是否存在重复元组,都会对结果进行去重操作。
[0004]在查询结果本身不具有重复值的情况下,上述处理DISTINCT关键词的方式会增加资源开销,导致查询效率下降。
技术实现思路
[0005]本专利 ...
【技术保护点】
【技术特征摘要】
1.一种数据库查询语句的优化方法,包括:获取所述数据库查询语句,并确定所述数据库查询语句是否包含去除重复值的关键词DISTINCT;在所述数据库查询语句包含关键词DISTINCT的情况下,判断所述数据库查询语句指定的数据表是否全部满足预设的限定表规则;若是,删除所述数据库查询语句中的关键词DISTINCT,得到消除优化后的查询语句;按照所述消除优化后的查询语句执行查询。2.根据权利要求1所述的数据库查询语句的优化方法,其中,所述判断所述查询语句指定的数据表是否全部满足预设的限定表规则的步骤包括:确定所述数据表中所述数据库查询语句涉及数据列的集合;对所述数据列的集合逐列判断是否同时满足非空性条件以及唯一性条件;若满足,则判定所述查询语句指定的数据表属于限定表,并且认定所述限定表全部满足预设的限定表规则。3.根据权利要求2所述的数据库查询语句的优化方法,其中,在所述对所述数据列的集合逐列判断是否同时满足非空性条件以及唯一性条件的步骤之后还包括:将数据列不能同时满足非空性条件以及唯一性条件的数据表作为待分析表;判断所述待分析表是否与任一所述限定表存在唯一连接关系;若是,则认定所述待分析表也属于所述限定表。4.根据权利要求3所述的数据库查询语句的优化方法,其中,所述判断所述待分析表是否与任一所述限定表存在唯一连接关系的步骤包括:所述待分析表与所述限定表中满足非空性条件和唯一性条件的列集合中的一列存在连接谓词关系且满足所述待分析表的某一列数据与所述列集合中的一列数据具有等值关系。5.根据权利要求2所述的数据库查询语句的优化方法...
【专利技术属性】
技术研发人员:刘进央,尹强,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。