深入浅出的 SQL Server 查询优化
目前网络数据库的应用已经成为最为广泛的应用之一了,并且关于数据库的安全性,性能都是企业最为关心的事情。数据库渐渐成为企业的命脉,优化查询就解决了每个关于数据库应用的性能问题,在这里microsoft sql server又为我们做了些什么,我们一起关注。
优化查询我们理解起来貌似很抽象,概括范围十分的大,关于数据库这里的优化查询其实很简单,做一个简单的例子。一个数据包经过无数的路由器达到自己的目的地址,如果在经过每个路由器的时候,路由器都会给他指向最近的路,那么他抵达的速度也就是最快的。在数据库中也是一样,查询优化就是建立一个一个的路标,就是给这本厚厚的书,写一份简单快捷好用的目录,让计算机能够快速的读取到我们查询的数据。从这里可以联想到,优化查询就是建立目录,我们这里称之为索引。
通常用图书馆比作数据库,图书目录相当于我们的索引。
给图书分类,同类的书放在同一个书架中。
给图书编号,编号是关于书在书架的位置,书架的位置来决定的。
将编号进行统计。
这样,我们对图书馆就建立了索引,索引的建立,对数据库的查询效率的提高并不只是2.3倍,有时候会提高的惊人。
了解到了索引,那么我们自然而然的会想到关于索引的种种设计方案,不同的查询索引会对不同的查询语句进行优化查询。那么单单通过鼠标点击能做到我们希望得到的索引么?microsoft sql server 已经解决了这种问题。我们通过实际操作来看看如何实现的。这种简易的操作再一次夸张到了什么地步!
在sql server中打开需要建立索引的表,右键索引项目,我们可以看到上图所显示的窗口在这里,如果说我们的应用就如同图书馆一样简单快捷,那么我们可以通过这里点点鼠标就完成了操作,如果我们是比较复杂的查询方式呢?或者说有没有比这个提升效率空间更大的方法呢?这才是我要说的。
往往我们需要的并不是那么整齐的索引模型,例如我们做网站的应用,数据库是以什么样的方式调用的数据,根据这样的方式,我们建立相应的索引,我们的需求才会达到。联想一下这样的操作应该很繁琐,要求对SQL查询的了解也颇深,而这里微软的sql server已经为我们准备好了相应的策略,我们以一个简单的案例做一说明。
首先键入我们需要查询的语句,并查看他的运算符开销,当然开销越小,说明我们提高的越大。
我们查询关于这个电话号码的所有信息,运算符开销为0.134137,这里就不截图了,将鼠标放在索引查找就可以看到。选中我们的查询语句,点击分析查询。
点击左上角的开始分析即可得到相应的分析结果。
复制到剪切板之后,我们创建新的查询,将这些语句复制进去,然后执行。就会自动生成新的索引,而这个索引所提高的效率远远超过我们手动创建的简单索引。
我们在来看,查询速率已经提升了40多倍,很夸张的一个数字。这样创建的索引,会对所有的类似查询都会生效,大大提高了数据库查询效率,实现了优化查询。
深入浅出的 SQL Server 查询优化的更多相关文章
- SQL Server 查询优化 索引的结构与分类
一.索引的结构 关系型数据库中以二维表来表达关系模型,表中的数据以页的形式存储在磁盘上,在SQL SERVER中,数据页是磁盘上8k的连续空间,那么,一个表的所有数据页在磁盘上是如何组织的呢?分两种情 ...
- 深入浅出 关于SQL Server中的死锁问题
深入浅出 关于SQL Server中的死锁问题 博客2013-02-12 13:44 分享到:我要吐槽 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相 ...
- SQL Server查询优化方法(查询速度慢的原因很多,常见如下几种) .
今天看到一位博友的文章,觉得不错,转载一下,希望对大家有帮助,更多文章,请访问:http://blog.haoitsoft.com 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺 ...
- SQL Server查询优化器的工作原理
SQL Server的查询优化器是一个基于成本的优化器.它为一个给定的查询分析出很多的候选的查询计划,并且估算每个候选计划的成本,从而选择一个成本最低的计划进行执行.实际上,因为查询优化器不可能对每一 ...
- SQL Server查询优化中的两个选项
本文中,我们将介绍两个SQL Server中的可用概念,它们是使用SQL Server时值得注意的技术. 1. OPTIMIZE FOR Unknown SQL Server 2005版 ...
- MS SQL Server查询优化方法 查询速度慢的原因很多,常见如下几种
1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ...
- SQL Server 查询优化器运行方式
一.结合实际,谈索引使用的误区 理论的目的是应用.虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析.下面我们将根据在实践中遇到的实际问题 ...
- SQL Server查询优化
从上至下优化 看过一篇文章,印象深刻,里面将数据库查询优化分为四个大的方向 使用钞能力--给DB服务器加物理配置,内存啊,CPU啊,硬盘啊,全上顶配 替换存储系统--根据实际的业务情况选择不同的存储数 ...
- SQL Server查询优化指南
1.尽量不要使用is null,否则将导致引擎放弃使用索引而进行全表扫描.2.char是固定长度,速度快,但占空间,varchar不固定长度,不占空间,但速度慢.3.能使用数字类型就不要使用字符,查询 ...
随机推荐
- hdu 2094拓扑排序map实现记录
#include<stdio.h> #include<iostream> #include<algorithm> #include<string> #i ...
- AWR and ADDM
The Automatic Workload Repository Oracle collect a vast amount of statistics regarding the performan ...
- ssh连接断开后 shell进程退出
问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问. 解决方法:使用nohup命 ...
- 【大话QT之十四】QT实现多语言切换
功能需求: 网盘client要可以实现多国语言的切换,第一版要支持中.英文的切换. 在实现过程中感觉QT对多国语言的支持还是非常不错的.制作多语言包非常方便.切换的逻辑也非常easy. 以下就来看一下 ...
- WCF问题集锦:ReadResponse failed: The server did not return a complete response for this request.
今日.对代码进行单元測试时.发现方法GetAllSupplyTypes报例如以下错误: [Fiddler] ReadResponse() failed: The server did not retu ...
- 2015南阳CCPC H - Sudoku 数独
H - Sudoku Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny g ...
- 3301 Square words
3301 Square words 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 定义s ...
- PHP正则表达式-从文本中提取URL
1.从文本中提取URL的正则表达式 '/https?:\/\/[\w-.%#?\/\\\]+/i'
- leaning website
-->SoapUI http://soapui-tutorial.com/home/login/SOAPUI Module 13 - 1, 2, 3, 4, 5, 6 Module 1 ...
- Linux中grep命令的12个实践例子
grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...