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

      【摘 要】本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用、查询条件以及数据表的设计等进行了阐述。
中国论文网 http://www.xzbu.com/2/view-3479336.htm
  【关键词】数据库;查询;优化技巧
  1、创建索引可以提升查询效率
  在应用数据库的过程中是否应用索引查询是一个具备争议性的话题,这主要是由于对数据库某列添加索引之后,在利用该索引对整个数据库进行查询的时候就只会在索引范围以内进行扫描,而不利用该索引对整个数据库进行查询时所进行的就是全表的扫描。在这样一种情况下,从性能的角度来看的话,目标表记录的总数是固定的,所以在查询结果比较少的时候索引查询的效率才会相对比较高,查询结果较多的时候索引查询的效率反而会比较低,正是由于这样,索引查询的应用与否才会成为一个具备争议性的问题。但在实际的应用过程中,各类不一样软件的应用目的不一,一般来讲,记录数较少的表查询结果与记录数的比值偏大,甚至可以出现100%查询,但记录数少的表查询结果与记录数的比值则偏小,由此认为,至少应当对一些记录数比较多的数据库创建索引查询来实现查询效率的提升。
  2、数据表设计对查询性能的影响分析
  (1)空值比较。在对数据表进行定义的过程中会涉及到数据列的空值问题,这主要是由于在实际的应用过程中无疑会出现容许空值的情况,但在定义数据表时若是容许空值设置的话就会出现is null的查询条件。一旦is null查询条件出现后续的查询过程就是对全表进行的扫描而不是索引扫描,具体来讲,int当中采用一些特殊的数字来做为默认值,而字符串当中则采用空串来做为默认值。(2)字符类型比较。MS SQL
  Server2005当中共有六类字符串数据类型,包括:varbinary、binary、nvarchar、nchar、varchar、char。在这六个字符串数据类型当中,binary、nchar、char是固定长度的字符串,varbinary、nvarchar、varchar则是可变长度的字符串,在应用的过程中不一样类型也是能够互换使用的,所以要注意对其进行区分。
  3、条件表达式性能优缺点分析
  在进行数据查询的过程中,查询结果在查询语句中的表达方式有多种,且不一样表达方式所获得的查询效率有高有底,这也就是说,在进行条件表达式的编写时也须要根据查询结果的特色进行选择和应用,下面主要是结合经常使用的几种状况进行说明和分析。(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)sql

相关文章
相关标签/搜索