深入浅出的 SQL Server 查询优化

Posted 有梦就能实现

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出的 SQL Server 查询优化相关的知识,希望对你有一定的参考价值。

目前网络数据库的应用已经成为最为广泛的应用之一了,并且关于数据库的安全性,性能都是企业最为关心的事情。数据库渐渐成为企业的命脉,优化查询就解决了每个关于数据库应用的性能问题,在这里microsoft sql server又为我们做了些什么,我们一起关注。

 

优化查询我们理解起来貌似很抽象,概括范围十分的大,关于数据库这里的优化查询其实很简单,做一个简单的例子。一个数据包经过无数的路由器达到自己的目的地址,如果在经过每个路由器的时候,路由器都会给他指向最近的路,那么他抵达的速度也就是最快的。在数据库中也是一样,查询优化就是建立一个一个的路标,就是给这本厚厚的书,写一份简单快捷好用的目录,让计算机能够快速的读取到我们查询的数据。从这里可以联想到,优化查询就是建立目录,我们这里称之为索引。

 

通常用图书馆比作数据库,图书目录相当于我们的索引。

给图书分类,同类的书放在同一个书架中。

给图书编号,编号是关于书在书架的位置,书架的位置来决定的。

将编号进行统计。

这样,我们对图书馆就建立了索引,索引的建立,对数据库的查询效率的提高并不只是2.3倍,有时候会提高的惊人。

 

了解到了索引,那么我们自然而然的会想到关于索引的种种设计方案,不同的查询索引会对不同的查询语句进行优化查询。那么单单通过鼠标点击能做到我们希望得到的索引么?microsoft sql server 已经解决了这种问题。我们通过实际操作来看看如何实现的。这种简易的操作再一次夸张到了什么地步!

技术分享

 

在sql server中打开需要建立索引的表,右键索引项目,我们可以看到上图所显示的窗口在这里,如果说我们的应用就如同图书馆一样简单快捷,那么我们可以通过这里点点鼠标就完成了操作,如果我们是比较复杂的查询方式呢?或者说有没有比这个提升效率空间更大的方法呢?这才是我要说的。

 

往往我们需要的并不是那么整齐的索引模型,例如我们做网站的应用,数据库是以什么样的方式调用的数据,根据这样的方式,我们建立相应的索引,我们的需求才会达到。联想一下这样的操作应该很繁琐,要求对SQL查询的了解也颇深,而这里微软的sql server已经为我们准备好了相应的策略,我们以一个简单的案例做一说明。

 

首先键入我们需要查询的语句,并查看他的运算符开销,当然开销越小,说明我们提高的越大。

 

技术分享

 

我们查询关于这个电话号码的所有信息,运算符开销为0.134137,这里就不截图了,将鼠标放在索引查找就可以看到。选中我们的查询语句,点击分析查询。

 

技术分享

 

点击左上角的开始分析即可得到相应的分析结果。

 

技术分享

 

复制到剪切板之后,我们创建新的查询,将这些语句复制进去,然后执行。就会自动生成新的索引,而这个索引所提高的效率远远超过我们手动创建的简单索引。

 

技术分享

 

我们在来看,查询速率已经提升了40多倍,很夸张的一个数字。这样创建的索引,会对所有的类似查询都会生效,大大提高了数据库查询效率,实现了优化查询。

以上是关于深入浅出的 SQL Server 查询优化的主要内容,如果未能解决你的问题,请参考以下文章

sql server都有哪些查询优化方法

SQL -- SQL Server 查询优化器(Query Optimizers)

sql Server 查询方法的优化

如何优化此 SQL Server 查询 - 多个子查询

SQL Server 'OR' 查询优化

优化 SQL Server 查询以提高速度