- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库查询语句优化方法初探
数据库查询语句优化方法初探 摘要:在实际的数据库应用系统开发过程中,需要对数据库进行“增、删、改、查”操作,其中查询操作更为突出,随着数据库数据量的不断增大,响应时间也会变得越来越慢,因此优化数据库查询语句,是数据库应用系统开发的重要工作。本文重点讨论编码阶段数据库查询语句优化方法的探讨
关键词:数据库 查询 优化
中图分类号:TP311.138 文献标识码:A 文章编号:1007-9416(2016)11-0247-02
Abstract:In the practical development of database application system, operations on database such as insert, delete, update and query are required, among which query is of great importance. With increase of data volume of the database, the response time will become longer. Therefore, optimization of query sentence in database is an important work in the development of database application system. The paper is focused on discussion of optimization method of query sentence in database during the programming stage.
Key Words:database;query;optimization
目前数据库应用系统的开发大部分是基于B/S模式(Bowser/Server模式,即浏览器/服务器模式),在Web数据库的服务中,浏览器端的脚本程序通过对页面信息进行收集来形成SQL语句,再将SQL语句传递给服务端进行处理从而获得查询结果,如图1所示
数据库在网络环境下的应用,存在对数据的大量传输和查询,随着数据量的增多,其响应时间也会越来越长。如果能确保SQL语句能在最短时间执行,则用基于SQL组合成的系统将有着较高的运行效率,其执行效率对数据库系统的性能起决定性作用。本文主要针对SQL查询语句进行优化,通过具体的实例测试,使查询语句尽可能的缩短查询的响应时间,提高服务器的效率
1 SQL查询语句的优化概述
数据库查询优化就是在查询执行引擎生成一个执行策略的过程中尽量使查询的总资源占用和总时间消耗极小化[1]。其基本步骤包括语法分析与翻译、优化、执行,如图2所示。查询处理开始之前,系统必须将查询语句翻译成可使用的形式,翻译过程类似编译器语法分析的过程;语法分析器查询翻译时,对用户的查询进行语法检查,并将其翻译成关系代数表达式;在诸多查询执行计划中做出选择,优化器必须要利用各关系的统计信息,来对计划做出最佳估计[2]。例如在下例中有三种方法来解决同一个查询问题,需要我们在这三种方法中选出最优查询语句
例如:对于教学数据库中的四个关系:
教师关系 T(T#,TNAME,TITLE)
课程关系 C(C#,CNAME,T#)
学生关系 S(S#,SNAME,AGE,SEX)
选课关系 SC(S#,C#,SCORE)
问:检索学习课程号为 C2 课程的学生学号与姓名
第一种写法(连接查询) :
SELECT S.S#, SNAME FROM S,SC WHERE S.S#=SC.S# AND C#=”C2”
第二种写法(嵌套查询) :
SELECT S#,SNAME FROM S
WHERE S# IN(SELECT S# FROM SC WHERE C#=”C2”)
第三种写法(使用存在量词的嵌套查询) :
SELECT S#,SNAME FROM S
WHERE EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND C#=”C2”)
2 SQL查询语句的优化原则
(1)在进行查询时,返回需要的数据。返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件:1)纵向来看,不要写SELECT * 的语句,而是选择需要的字段。2)横向来看,合理写WHERE子句,不要写没有WHERE的SQL语句。3)注意SELECT INTO后的
文档评论(0)