本站首页 教育期刊 科技期刊
经济期刊 医学期刊 社科期刊
学报期刊 文学期刊 交通期刊
电子期刊 建筑期刊 机械期刊
核心期刊 农业期刊 CSSCI期刊
体育期刊 法学期刊 统计源期刊
联系我们 关于我们 诚信说明
发表流程 网站声明 诚信通道
当前位置:首页 -> 论文下载 -> 科技论文

TOP

对SQLServer 中查询优化的几点思考
2013-07-20 17:29:20 来源:www.qikanwang.org 作者: 楚书来,肖尧 【 】 浏览:1741次 评论:0
摘要 :通常如何提高查询执行效率是检验关系数据库系统性能好坏的重要标志 ,需要进行优化设计的地方很多,
因此可以说查询速度决定了关系数据库的性能优劣。本文重点讨论查询优化的一些方法,并结合它在实际应用中的例
子进行分析。
   关键词:SQLServer ;查询;优化;索引
   中图分类号:TP311            文献标识码 :A      文章编号:1007-9599 (2013) 02-0186-02

   目前程序开发中几乎都使用到数据库,作为中小规模              设置自动收缩日志。
开发的数据库主流是SQLServer数据库,其查询性能好坏              4  查询优化在T-SQL中的具体体现
跟整个系统运行效率有着极大的关系,但实际应用中,会                  4.1 T-SQL语句写法的影响
出现查询等待时间过长、响应速度慢的现象,究其原因,                  T-SQL语句的写法上有很大的讲究,下面列出常见的
一方面是硬件方面的原因,另一方面就是对查询没有进行               要点:在最常见查询SELECT语句中,最好是使用WHERE子
很好的优化。                                  句限制返回的行数,避免对表进行全部扫描,如果不进行
   本文所谓的查询优化是指为了查询选择出最有效的查              限制,就会返回很多不必要的数据,既浪费了服务器的I/
询计划的过程,查询优化一方面在关系代数级进行优化,               O 资源,又加重了网络的负担降低性能,特别是表很大的
力图找出与给定表达式等价,而且执行效率更高的一个表               时候,再对表全扫描,很可能造成在扫描期间将表锁住,
达式另一方面涉及查询语句处理策略的选择。                    导致禁止其他的联接访问表,造成后果严重。
   1  SQLServer查询优化机制                      4.2 设置锁的时间对查询优化的影响
   SQLServer 中有一个“查询分析优化器”,它能实现            SETLOCKTIME设置锁的时间;用SELECTTOP10/10Per-
自动优化,即查询提供一个最佳的执行策略.对于SQL的查询            cent来限制用户返回的行数或者SETROWCOUNT来限制操作
优化器,输入是一条查询语句,输出是一个执行策略.一条              的行,尽量不要用如下的字句:ISNULL、<> 、!  、!>、!
SQL查询语句可以有多种执行策略,优化器将会考察解决查             <、NOT、NOTEXISTS、NOTIN、NOTLIKE,因为这些关键字
询各个部分(如WHERE条件、连接和函数),估计出每个操作的          不走索引而是表全扫描,但是改成like"500%"就会走索
每项逻辑开销,并考虑索引、硬件的限制和数据的统计信息,             引。也不要在WHERE字句中的列名加函数,诸如Convert,
执行其中所需时问最少的所谓成本最低的那一种方法.虽然              substring等,如果却是需要用函数的时候,可以通过创
查询优化器可以根据WHERE子句自动的进行查询优化,但有            建计算列再创建索引来替代,一定要将函数和列名分开,
时查询优化器就会不按照您的本意进行快速查询.因此,SQL            并且索引不能建得太多和太大。
数据库应用系统中,查询性能与查询设计的好坏有关.对影                 4.3 联接对查询优化的影响
响SQL查询语句执行效率的主要因素进行分析,是优化SQL查              NOTIN会多次扫描表,使用EXISTS、NOTEXISTS ,
询语句,提高查询效率的重要途径。                        IN,LEFTOUTERJOIN来替代,特别是左连接,而EXISTS比
   2  查询速度慢的原因种类                        IN更快,最慢的是NOT操作;使用QueryAnalyzer,查看
   查询速度慢的原因很多,常见如下几种:没有索引或              SQL语句的查询计划和评估分析是否是优化的SQL;存储过
者没有用到索引;I / O吞吐量小,形成瓶颈效应;没有创            程就没有这些动作;BETWEEN比IN速度更快,BETWEEN能够
建计算列导致查询不优化或者计算列失效了;内存不足;               很快地根据索引找到范围。
网络速度慢;查询出的数据量过大;锁或者死锁;一个服                  4.4 借助索引/临时表实现查询优化
务器同时存在OLTP和OLAP查询;返回了不必要的列;查询              除以上常见的情况,还包括如下不太常见的情况:在
语句不好,没有优化。                              必要是对全局或者局部临时表创建索引;不要建没有作用
   3  常见的查询优化方法                         的事物例如产生报表时,浪费资源;用OR 的字句可以分解
   把数据、日志、索引放到不同的I / O设备上,增加读           成多个查询,并且通过UNION连接多个查询。他们的速度
取速度,Tempdb应放在RAID0上。数据量(尺寸)越大,提         只同是否使用到索引有关,如果查询需要用到联合索引,
高I / O 越重要;纵向、横向分割表,减少表的尺寸;升级           用UNION,all执行的效率更高。多个OR的字句没有用到索
硬件;根据查询条件,建立索引,优化索引、优化访问方               引,改写成UNION 的形式再试图与索引匹配;尽量少用视
式,限制结果集的数据量。注意填充因子要适当。索引应               图,它的效率低。对视图操作比直接对表操作慢,可以用
该尽量小,使用字节数小的列建索引好(参照索引的创                storedprocedure来代替她。特别的是不要用视图嵌套,
建) ,不要对有限的几个值的字段建单一索引如性别字               嵌套视图增加了寻找原始资料的难度;没有必要时不要用
段;提高网速;扩大服务器的内存,增加服务器C P U 个            DISTINCT和ORDERBY,这些动作可以改在客户端执行。
数;收缩数据和日志DBCCSHRINKDB,DBCCSHRINKFILE。           
分享到QQ空间
分享到: 
Tags:论文发表 发表论文 责任编辑:admin
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇分析计算机通信的实用技术 下一篇基于B/S模式的高校计算机实验室管..

联系我们

论文投稿:[email protected]
咨询电话:025-66014678
咨询电话:15371043073
在线咨询:论文投稿415950357
在线咨询:论文投稿85563802
在线咨询:论文投稿597697761

发表程序:1、投稿、审稿;2、告知杂志相关情况并核实刊号等;3、支付版面费用;4、发送用稿通知;5、邮寄杂志。

最新文章

热门文章

推荐文章

相关文章

中国互联网协会
关于我们 | 版权声明 | 服务条款 | 广告服务 | 腾讯招聘 | 客服中心 | 网站导航
评职称,发表论文-论文发表 是一个专门从事期刊推广论文发表论文发表辅导。融合收集数百家期刊杂志社征稿评职称,发表论文,以供广大作者免费阅览,以期待各位作者在短时间内掌握每种期刊征稿要求、审稿范围,在日常繁重的工作中短时间开心、放心快速投稿、在适合的时间拿到刊物,评上职称不为挤不上评职称的末班车而烦恼。
本站主要整合如下评职称: 论文发表发表论文教育论文发表经济论文发表科技论文发表医学论文发表文学论文发表学报论文发表电子论文发表
农业论文发表建筑论文发表体育论文发表法制论文发表社科论文发表核心论文发表机械论文发表交通论文发表
CSSCI论文发表图书馆论文发表计算机论文发表统计源论文发表等,
另期待更多的杂志编辑与本站联系:共同以正期刊界正刊之气,维护学术良好的氛围。 免责声明:本网所提供的信息资源如有侵权、违规,请及时告知!
论文网版权所有, 本站提供论文发表 论文投稿 发表论文 发表文章.
本站文章只代表作者观点,并不意味着本站认同,部分作品系转载,版权归原作者;若某篇作品侵犯您的权利,请来信告知:[email protected]
中国论文网全权所属国际域名:www.sevenbrother.com 中文域名:期刊库论文发表 技术支持:期刊库论文发表 国家双软认定单位 法律顾问:全民安律师事务所
论文发表咨询QQ:在线咨询415950357 论文发表咨询电话:400-699-2260 论文发表投稿邮箱:[email protected]