背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-105506.html    注册17xie 一起来写书 实现您的出书梦想!

3.6  小结

在SQL Server或任何其他数据库环境中,索引是一种基础性的主题,因而绝不要轻视。它们既能导致良好的性能,也能导致糟糕的性能。

关于索引要考虑的首要问题是:

l    聚集索引通常比非聚集索引快(几乎可以说总是比非聚集索引快,不过有例外的情况);

l    在将获得高级别选择性(即95%或更多的行是唯一的)的列上,只放置非聚集索引;

l    所有的数据操作语言(DML:INSERT、UPDATE、DELETE、SELECT)语句都能从索引中受益,但是索引会让插入、删除或更新(记得前面讲过,更新使用删除和插入的方法)变慢。索引对查询的查找部分很有帮助,但是任何对数据的修改将需要做额外的工作(除了实际的数据外还要维护索引);

l    索引会占用空间;

l    只有当查询引用了索引中的第一列时,才会使用索引;

l    索引既能有助益,也能带来麻烦——要了解为什么要创建索引,并且不创建不需要的索引;

l    索引能为非结构化的XML数据提供结构化的数据性能,但要记住,与其他索引一样,这会涉及开销的问题。

在考虑索引时,问自己下面这些问题:

问    题

回    答

会对该表进行大量的插入和修改吗?

如果答案是肯定的,则尽量少用索引。通常,这种类型的表通过主键的单记录查找完成修改——这往往就是该表上唯一需要的索引。如果插入操作是不连续的,那么,考虑不使用聚集索引

这是一个报表吗?即是说,这里没有多少插入,但会以多种不同的方法运行报表吗?

多数索引是不错的。把聚集索引确定在经常使用的可能会在范围中提取的信息上。OLAP系统中的索引数目常常是OLTP环境中的数倍

数据上有高级别的选择性吗?

如果是,并且它常常是WHERE子句的目标,那么添加索引

已经删除了不再需要的索引吗?

如果没有,为什么不删除?

制定了维护策略吗?

如果没有,为什么不制定?


字数:1000    最后更新:7个月以前 [04-23 15:56]happyskynet 修改
本页编辑者:happyskynet  
[前一页]:3.5 维护索引  [后一页]:第4章 SQL游标
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号