sql server使用索引实现数据访问优化--

sql server使用索引实现数据访问优化--

ID:22725945

大小:72.00 KB

页数:14页

时间:2018-10-31

sql server使用索引实现数据访问优化--_第1页
sql server使用索引实现数据访问优化--_第2页
sql server使用索引实现数据访问优化--_第3页
sql server使用索引实现数据访问优化--_第4页
sql server使用索引实现数据访问优化--_第5页
资源描述:

《sql server使用索引实现数据访问优化--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、SQLServer使用索引实现数据访问优化>>  一、简介  自从你和你的团队成功的开发和部署了一个INTER网站,已经过去数月了,这个网站在很短的时间内吸引了数千用户前来注册和使用,因此你有了一个非常满意的客户。包括你和你的团队、管理层、客户,每个人都非常高兴。  生活并不总是一帆风顺的。当站点的用户开始日均高速增长的时候,问题随即出现了,客户发来邮件开始抱怨网站性能太慢,同时称网站正在丢失客户。  你开始调查这个系统,很快你发现当系统访问或更新数据的时候,速度非常慢。打开数据库一看,数据库的记录增加的很快,有些表的记录达到了成千上万行,测试团队在产品数据库上做了一个测试,结果

2、发现在测试服务器上仅2/3秒就能完成的一个处理过程,现在需要5分钟。  这个古老的故事发生在全球范围内的数以千计的系统身上。包括我在内,几乎每个开发人员在他或她的开发过程中会碰到同样的事情。我知道为什么这样的情形会发生,同时我也知道如何去克服它。  二、阅读范围  请注意本一系列文章讨论的主要的焦点是事务性的SQLServer数据库数据访问性能优化,但大部分优化技术同样适用于其他的数据库。  我将要讨论的优化技术仅仅适用于软件开发人员。作为一个开发者,你需要跟随我关注的问题,确认你已经作了所有能做的事情,去优化你已经写的或将要写的数据访问代码。数据库管理人员(DBA)同样在优化和

3、提高性能上扮演了很重要的角色,但是DBA领域的优化将不属于这篇文章讨论的范围。  三、开始优化一个数据库  当基于数据库的应用系统放慢的时候,99%的可能是系统的数据访问过程没有优化,或者没有使用最好的方式。所以你需要回顾和优化你的数据访问/操作过程,提高系统的全局性能。接下来我们通过一步一步的方式开始我们的优化任务。  第一步:在列上采用正确的索引  有些人可能争论实施正确的索引是否是数据库优化过程的第一步。但是我认为在数据库应用正确的索引是第一位的。原因有2点:  1.在一个产品系统里,它将使你在很快的时间内提高尽可能大的性能。  2.创建数据库索引不需要你做任何的系统修改,

4、因此不需要任何重新编译和部署  如果你发现有当前的数据库没有很好的处理索引,你建了索引,结果就是性能的快速提升。然而,如果索引已经处理了,我们进入下面的步骤。  什么是索引  我相信你已经明白了什么是索引,但是,我仍旧看到很多人对索引不太清楚。让我们再一次弄明白什么是索引,请看下面的小故事。  很久以前,在一个古城市里有一个很大的图书馆,里面有数以千计的图书,图书凌乱的存放在书架上。因此,一旦有读者向图书员索要一本图书,图书员除了一本一本的检查图书,看是否匹配读者索要的图书,其它没有更好的办法。发现一本渴望的图书往往需要花费图书员数个小时。同时读者也不得不等很长的时间。  [这看

5、起来象一个没有主键的表,当在表里进行搜索数据的时候,数据库引擎需要遍历全部的数据来查找相关的记录,所以运行起来非常慢。]  当读者和图书每天都在大量增加的时候,图书员的工作越来越繁重。有一天,有一个智者来到图书馆,看到图书员的繁重的工作,建议他给每一本书编号,同时按顺序码放在书架上。我可以从中得得什么好处?图书员问,那个智者回答到:如果有读者通过给你一个书号来索要图书,你很快就能发现在哪个书架上存放了包含该书号的图书,然后在这个书架上,你同样能很快的找到需要的图书  [给书编号就象在数据表里创建一个主键,当你在一个表里创建了一个主健后,系统就创建了一个聚集索引树,所有的包含记录的

6、数据页按照主键的值在文件系统中进行排序.每一个数据页内部也同样按照主键的值进行排序.所以,当你向数据库请求任何一个数据行的时候,首先数据库服务器使用聚焦索引找到合适的页(象首先发现书架一样),接着在页里查找包含主键值的记录(象在书架发现一本书)]  这正是我所需要的,兴奋的图书员开始给书编号,接着把它们排列在不同的书架上,他花费了一天的时间来排序.在那天快结束的时候,他做了测试,结果发现几乎不用花费时间就能找到一本书.图书员高兴极了.  [这正是你创建了主键后所发生的事情.首先,创建了聚焦索引,接着数据页在物理文件里按照主键的值被排序.有一点我想你应该很容易理解,因为数据仅仅只能

7、使用一列的值作为凭证来排序,所以一个表只能创建一个聚焦索引.就象图书只能使用一个标准即书号来排序一样.]  等一等,问题还没有被完全解决,在接下来的时间里,有个读者没有图书的编号,只有图书的名字,他想通过书名索要图书,如何办呢?可怜的图书员只能按照从1到N来查遍所有已经编号的图书.如果图书存放在67号书架上,他可能需要20分钟,相比早间图书没有被排序的时候,他所花费的2-3个小时.这确实有一个进步.但是和花费30秒通过书号查找一本书比较起来,,20分钟仍旧是一个不短的时间.还有没

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。