网站大量收购独家精品文档,联系QQ:2885784924

SQL查询性能优化.pdfVIP

  1. 1、本文档共1页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用技术 l■ China science and Technology Review SQL查询性能优化 田 (中南财经政法大学 娅 湖北 武汉 430073) [摘 要]SO L SERVER数据库是一种功能强大的数据库管理系统,大多数数据库应用系统都以它作为后台数据库。数据库的性能问题一直是决策者及技 术人员共同关注的焦点,影响数据库性能的一个重要因索就是SQL查询语句的低效率。 [关键词]SOL SERVER数据库 查询语句 优化 中图分类号:N945.15 文献标识码:A 文章编号:1009—914X(2013)16一o6o6—0l 一 .引曹 SOL SERVER为企业中的用户提供了一个安全、可靠、高效的平台用于 企业数据管理和商业智能应用等,但是随着应用的扩大和深入,数据库的性能 问题变得日益突出。而影响系统性能的因素是多方面的,低效的sQL语句就是 其中一个不可忽视的重要原因。因为在数据库的各种操作中,查询操作所占的 比重最大,而在查询操作中基于SELECT语句在SQL语句中又是代价最大的 语句。如果在使用中采用了优秀的查询策略,就可以降低查询时间,提高查询的 效率,由此可见查询优化在数据库中的重要性。 =、问曩描述 以“宠物商店管理系统数据库”为例,当数据库中的数据量达到一定程度 时,使用相同的SELEC 语句时,系统的响应速度会变慢,系统的存储需求 也会相应地增加,从而降低了系统的性能。因此,如何提高SOLi~J的性能成为 当前最主要的问题。 三,SO1.语句优化的过程 SO Li~旬是一种灵活的语言,相同的功能可以用不同的语句来实现,但是 语句的执行效率是很不相同的,所以sQI语句的优化对数据库系统的性能起着 决定性作用。查询优化的目的就是用最少的时间和代价得到所需要的数据。 SOL语句的查询优化通过三个阶段完成:查询分析、索引选择、合并选择。 四,SOLm旬优化的1-‘体策略 (一)选择高效的操作符,如尽量使用(NOT)ExI 代(NOT)INI避 免使用OR运算符和IS NULL或Is NOT NULL~作l使用;和=代替 和运算符,正确使用UKE操作符等。 (二)注意SQ1语句的书写细节,如应尽量避免使用“SELECT ·”进行查 询。在筛选条件中用常量代替表达式lWHERE子句中筛选条件的顺序,当表 的数据量比较大的时候,WHERE子句中条件顺序对查询效率产生直接的影 响。 (三)sQL语句对索引的利用。采用函数和表达式处理的字段不能被利用索 引;聚集索引的查询效率比非聚集索引高,在聚集索引下,数据在物理上按顺序 在数据页上,重复值也排列在一起,因而在范围存在时,可以先找到这个范围的 起末点,且只在这个范围内扫描数据页,避免了大范围扫描,提高了查询速度。 五.优化实倒 以“宠物商店管理系统数据库”为例,该数据库包含5张表,分别是商品分类 信息表(Category)、商品信息表 (Product)、供应商信息表 (Supplier)、订单 信息表 (Order1)、订单详细信息表(Orderltem)。 同的操作时,更改sQ1语句会使数据库的查询性 能得到提高。 如:1.SELECT Descn FROM Product WHERE substring(Descn,I, 3)- ’Bcd’ 查询出 20l00l行数据耗时3秒 SELECT DeSCFI FROM Product WHERE Descn like’Bcd%’ 查询出 201001行数据耗时1.89秒 数据库的查询效率得到明显提高。 2.选择最有效率的表名顺序也能够提高SQLi~句查询效率。 606 }科技博览 如Orderl表中有50o行记录,Ordefltem~中有1638400~记录 SELECT·FROM OrderItem,Orderl 耗时20.77秒 SELECT+FROM Orderl。Orderltem 耗时3.96秒 SQL SERvER的解析器按照从右到左的顺序处理FROM子句中的表名, 因此FROM子旬中写在最后的表将被最先处理。在FI己OM子句包含多个表的情 况下,必须选择记录条数最少的表作为基础表。 3.SELECT ProductId FROM Product W HERE rice30 GROUP BY ProductId 查询出 200751行数据耗时2.97秒 SELECT DI nNCT Productld FROM Product WHERE List_Price 30 查询出 200751行数据耗时1秒 修改sqL语句执行效率明显变快。 通过这些实例我们可以看出即使只改变了SOLi~ 的顺序,数据库的执行 效率也会得到大大提高,因此SOLI~旬优化对提高数据库性能具有重大意义。

文档评论(0)

ouyangxiaoxin + 关注
实名认证
文档贡献者

一线鞋类设计师,喜欢整理收集文档。

1亿VIP精品文档

相关文档