SQL查询语句优化研究
作者:张
来源:《现代电子技术》2010年第04
        :数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率。为了提高数据库应用系统的执行效率,在此从分析关系数据库查询处理过程入手讨论查询优化技巧,指出关系数据库查询优化的一般原则。通过几种优化策略的研究,在时间和空间上提高了系统的性能,在一定程度上提高了查询效率。
        关键词:SQL;优化策略;数据库性能;谓词
        中图分类号:TP301.6文献标识码:A
        文章编号:1004-373X(2010)04-152-02
        Optimization of SQL Query
        ZHANG Min1,2 
        (1.Northwest University,Xi′an,710069,China;
        2.Computer Faculty Working Office,Xi′an Fanyi University,Xi′an,710105,China)
        Abstract:Database performance issue has been the decision-makers and technical staff of the focus of common concern,affecting database performance is an important factor in the low-SQL query efficiency.In order to improve the implementation of database application system efficiency,from analysis of the process of query processing relational database query optimization techniques to start the discussion,pointing out that the relational database query optimization as a general principle.Optimization strategy in several studies,in time and space to improve the performance of the system,to a certain extent to improve efficiency of the query.
        Keywords:SQL;optimization strategy;database performance;predicate
        0
        查询是数据库中最基本、最常用、最复杂的操作。在数据库的管理信息系统中,查询操
作是所有数据库操作中所占据比重最大的操作。当数据库系统积累到一定程度,若查询时采用单条顺序扫描,那么扫描一遍所有的记录可能就得花上几十分钟,甚至几小时,这样的系统就失去了现实的使用价值。采取什么样的查询策略,使查询时间降为几分钟或者几秒钟,就是这里需要研究的查询优化问题。
        1 优化原理[1] 
        查询优化力图出给定表达式等价,但执行效率更高的一个表达式,一个查询往往会有许多实现方法,关键是如何出一个与之等价的且操作时间又少的表达式,查询优化关注的问题是怎样省时、省空间以及效率高。优化的核心问题是尽可能减少查询中各表的参与加工的数据量,从而达到优化时间和空间的目的。
        2 SQL优化的方法
        2.1 模糊匹配的避免
        LIKE关键字支持通配符匹配,技术上称为正则表达式。但这种匹配特别耗费时间,尽量避免使用模糊匹配。例:
        SELECT*FROM student WHERErxscoreLIKE′4′
        即使在rxscore 字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。
        可改写为:
        SELECT*FROM student WHERE rxscore>′400′
        这样,在执行查询时就会利用索引来查询,显然会大大提高速度。
sql语句优化方式        2.2 逻辑表达式的等价变换
        由于执行引擎对各种谓词的处理方法不同,因此把逻辑表达式重写成等价的且效率较高的表达式是提高查询效率的有效方法,同时也是切实可行的[2] 。通过查阅大量的文献资料以及大量的实验,分析了RDBMS执行引擎对各种谓词执行效率的不同,总结出以下几种逻辑表达式转换规则:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。