深入浅出 SQL Server 查询优化[转]
目前网络数据库的应用已经成为最为广泛的应用之一了,并且关于数据库的安全性,性能都是企业最为关心的事情。数据库渐渐成为企业的命脉,优化查询就解决了 每个关于数据库应用的性能问题,在这里 microsoft sql server 又为我们做了些什么,我们一起关注。
优化查询我们理解起来貌似很抽象,概括范围十分的大,关于数据库这里的优化查询其实很简单,做一个简单的例子。一个数据包经过无数的路由器达到自己的目的 地址,如果在经过每个路由器的时候,路由器都会给他指向最近的路,那么他抵达的速度也就是最快的。在数据库中也是一样,查询优化就是建立一个一个的路标, 就是给这本厚厚的书,写一份简单快捷好用的目录,让计算机能够快速的读取到我们查询的数据。从这里可以联想到,优化查询就是建立目录,我们这里称之为索 引。
通常用图书馆比作数据库,图书目录相当于我们的索引。
给图书分类,同类的书放在同一个书架中。
给图书编号,编号是关于书在书架的位置,书架的位置来决定的。
将编号进行统计。
这样,我们对图书馆就建立了索引,索引的建立,对数据库的查询效率的提高并不只是2.3倍,有时候会提高的惊人。
给图书分类,同类的书放在同一个书架中。
给图书编号,编号是关于书在书架的位置,书架的位置来决定的。
将编号进行统计。
这样,我们对图书馆就建立了索引,索引的建立,对数据库的查询效率的提高并不只是2.3倍,有时候会提高的惊人。
了解到了索引,那么我们自然而然的会想到关于索引的种种设计方案,不同的查询索引会对不同的查询语句进行优化查询。那么单单通过鼠标点击能做到我们希望得
到的索引么?microsoft sql server
已经解决了这种问题。我们通过实际操作来看看如何实现的。这种简易的操作再一次夸张到了什么地步!
在sql
server中打开需要建立索引的表,右键索引项目,我们可以看到上图所显示的窗口在这里,如果说我们的应用就如同图书馆一样简单快捷,那么我们可以通过
这里点点鼠标就完成了操作,如果我们是比较复杂的查询方式呢?或者说有没有比这个提升效率空间更大的方法呢?这才是我要说的。
往往我们需要的并不是那么整齐的索引模型,例如我们做网站的应用,数据库是以什么样的方式调用的数据,根据这样的方式,我们建立相应的索引,我们的需求才
会达到。联想一下这样的操作应该很繁琐,要求对SQL查询的了解也颇深,而这里微软的sql
server已经为我们准备好了相应的策略,我们以一个简单的案例做一说明。
首先键入我们需要查询的语句,并查看他的运算符开销,当然开销越小,说明我们提高的越大。
我们查询关于这个电话号码的所有信息,运算符开销为0.134137,这里就不截图了,将鼠标放在索引查找就可以看到。选中我们的查询语句,点击分析查询。
点击左上角的开始分析即可得到相应的分析结果。
复制到剪切板之后,我们创建新的查询,将这些语句复制进去,然后执行。就会自动生成新的索引,而这个索引所提高的效率远远超过我们手动创建的简单索引。
我们在来看,查询速率已经提升了40多倍,很夸张的一个数字。这样创建的索引,会对所有的类似查询都会生效,大大提高了数据库查询效率,实现了优化查询。