MS SQL Server数据库查询优化技巧研究

来源 :企业导报 | 被引量 : 0次 | 上传用户:chendan790914
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用、查询条件以及数据表的设计等进行了阐述。
  【关键词】数据库;查询;优化技巧
  一、建立索引能够提高查询效率
  在应用数据库的过程当中是否应用索引查询是一个具有争议性的话题,这主要是因为对数据库某列添加索引以后,在利用该索引对整个数据库进行查询的时候就只会在索引范围之内进行扫描,而不利用该索引对整个数据库进行查询时所进行的就是全表的扫描。在这样一种状况下,从性能的角度来看的话,目标表记录的总数是固定的,因此在查询结果比较少的时候索引查询的效率才会相对比较高,查询结果较多的时候索引查询的效率反而会比较低,正是因为这样,索引查询的应用与否才会成为一个具有争议性的问题。但在实际的应用过程当中,各种不同软件的应用目的不一,通常来说,记录数较少的表查询结果与记录数的比值偏大,甚至能够出现100%查询,但记录数少的表查询结果与记录数的比值则偏小,由此认为,至少应当对一些记录数比较多的数据库建立索引查询来实现查询效率的提高。
  二、数据表设计对查询性能的影响分析
  (1)空值比较。在对数据表进行定义的过程当中会涉及到数据列的空值问题,这主要是因为在实际的应用过程当中无疑会出现允许空值的状况,但在定义数据表时如果允许空值设置的话就会出现is null的查询条件。一旦is null查询条件出现后续的查询过程就是对全表进行的扫描而不是索引扫描,具体来说,int当中采用一些特殊的数字来作为默认值,而字符串当中则采用空串来作为默认值。(2)字符类型比较。MS SQL
  Server2005当中共有六类字符串数据类型,包括:varbinary、binary、nvarchar、nchar、varchar、char。在这六个字符串数据类型当中,binary、nchar、char是固定长度的字符串,varbinary、nvarchar、varchar则是可变长度的字符串,在应用的过程当中不同类型也是可以互换使用的,因此要注意对其进行区分。
  三、条件表达式性能优缺点分析
  在进行数据查询的过程当中,查询结果在查询语句中的表达方式有多种,且不同表达方式所得到的查询效率有高有底,这也就是说,在进行条件表达式的编写时也需要根据查询结果的特点进行选择和应用,下面主要是结合常用的几种情况进行说明和分析。(1)!=或<>情况。我们在实际的查询过程当中应当尽可能的去避免不等条件的应用,这主要是因为一旦在查询过程当中使用不等条件就意味着后续查询过程只能够通过全面扫描来完成,索引扫描在其中是难以发挥作用的。通常情况下采用的是大于或小于的表达式来对不等条件进行表示。(2)Like情况。Like情况主要是应用于字符串的模糊查询,其具体的查询表达形式同样有多种:like a%、like%a和like a%a ,在这其中,只有likea%既能应用于索引扫描又能应用于全表扫描,like%a和likea%a只能进行全表扫描,正是因为这样,我们在进行选择和使用的时候就尽可能的避免后两种表达方式。但是,在一些目标列中字段过长的时候,检索方式会选择为全文检索,在这样一种情况下则还是选择like%a和likea%a更為合适。(3)in、not in 情况。在进行查询语言的设计时,in的用法包括两种,一种是后接条件集合,一种是后接子查询,下文中将对这样两种情况分别进行说明和分析。in后接条件集合,如果其数据量不大或者其对应条件无索引时,可以直接予以使用而不需要对其进行优化,相反,如果数据量较大或者其对应条件有索引时,就建议将所有的条件都集合起来,并为每一个条件都单独写sql语句,采用union或者是union all将所有的查询结果进行连接。在这里进一步说明union和union all之间的区别,union能够对查询结果进行有效的排序,并去除重复项,而union all则无此功能,在实际的应用过程当中就可以根据需要排序与否来进行选择和使用。In后接子查询时,目标表记录数量如果明显比子查询表记录数少的话就需要采用exists来代替in,必要的时候还可以在子查询当中建立索引。但需要注意的是,在一些能够直接使用连接查询方式的语句当中就尽可能的不要使用in,这主要是因为in语句相当于hash连接,其性能相对而言要低的多。Not in在任何状况下应用都不会使用索引,因此认为在一些数据量大的数据库当中尽量不要使用,而not exists的子查询则是可以应用索引扫描的,因此有必要的时候就可以直接采用not exists加索引来对其进行优化。
  通过上文的说明和分析就可以看到,在进行数据库查询时往往是没有既定的方式和规则的,需要我们以查询效率为目的来进行创新、设计和尝试。
  参 考 文 献
  [1]王珊,萨师炫.数据库系统概述(第四版)[M].北京:高等教育出版社,2006
  [2]李辉,王至邀.一种多条件分页查询优化方法的设计[J].计算机工程.2010(2)
其他文献
在经济全球化的今天,对于早就加入了世贸组织的中国而言,我们获得了巨大的收益,也面临着前所未有的挑战。在激烈的市场竞争中,优化采购流程,对企业提高效率,降低成本,节约资
近年来,中国石化镇海炼化公司炼油五部(以下简称炼油五部或五部)党组织努力探索和创新新时代的思想政治工作,力争更有导向性、针对性和实效性。通过丰富思想政治工作内容,拓宽思想政治工作途径,完善思想政治工作机制,使思想政治工作更有说服力。  弘扬主旋律,提振精气神  企业思想政治工作,关键要坚持正确导向,为企业发展积聚正能量。  亲授课堂,正面引领。由于班组人员对中央文件精神、公司形势任务教育等内容理解
期刊
随着社会经济的发展,社会对于腐败问题越来越看重,对反腐败也提出了更多的要求.企业是促进社会经济发展的重要动力,随着企业结构变化,在企业中廉政建设建设也面临着巨大的挑
目的 观察右美托咪定复合羟考酮在腹腔镜下胃癌根治术患者术后镇痛的应用效果.方法 全身麻醉下行腹腔镜胃癌根治术患者80例随机均分为两组,术后均行静脉患者自控镇痛(PCA).A
新形势下,为了增强企业党的先进性建设工作,就一定要改进工程项目部党支部建设工作.项目部党支部作为党在企业当中最基础的组织,也同样是企业党建工作的重要基础.由于工程项
加强制造过程中的质量管理,是保证产品最终质量过关的必要保证,所以越来越多的专家学者和一线工作人员将更多的关注投向了制造过程中的质量管理与追踪,以提高产品的可靠性、
中康项目部自2010年成立以来,严格按照“新区块、新模式”的管理要求,坚持从自身实际出发,学习借鉴国内外一流企业的先进经验和做法,不断探索、实践,逐步建立了“集中决策、
1976年1月,中篇小说《机电局长的一天》在“复刊”后的《人民文学》刊发,尽管围绕着这篇小说的“政治博弈”错综复杂、风波迭起,但小说对国家工业现代化的想象,以及霍大道这一人物形象的塑造,使其成为“改革文学”的先声。1979年《人民文学》第7期发表的《乔厂长上任记》以及随后出现的《维持会长》、《开拓者》等小说,不仅把蒋子龙推上了“改革文学之父”的位置,使其成为新时期文学中最有影响力的作家之一,而且成
#
期刊
目的 探讨中国住院成人患者围手术期急性肾损伤(AKI)的发生情况.方法 多中心队列研究共纳入住院手术成人患者68 207例.排除慢性肾脏病(CKD) 4~5期、维持透析和肾移植患者.分析