SQL Server 2008索引使用技巧

ZDNet软件频道 时间:2008-10-07 作者: |  我要评论()
本文关键词:索引 使用技巧 SQL Server 2008 SQL Server SQL Server
微软MVP及畅销书《Hitchhiker's Guide SQL Server》的作者Bill Vaughn简要给出了SQL Server 2008的索引使用技巧。该主题基于Kimberly Tripp和Paul Randall的建议。

微软MVP及畅销书《Hitchhiker's Guide SQL Server》的作者Bill Vaughn简要给出了SQL Server 2008的索引使用技巧。该主题基于Kimberly TrippPaul Randall(这两位是SQL Server高可用性和性能方面的专家)的建议。

下面是主要的建议:

  • 页(page)密度
    优化行大小:SQL Server 2005(及后续版本)支持8k的列。这意味着一行可以超过80k大小。这有意义么?哦,通常情况下没有。对行大小的管理与效率同样重要。如何提高性能并充分利用空间呢?方法就是当8k的页被多个行塞满的时候,要确保几乎没有空间浪费。这意味着如果行大小超过(或者接近)4k时,一页只适合一行,这样该页大约有4k的空间就浪费了。第二个问题是索引页的数量也必须增加以寻址这些页。
  • 过滤的索引
    这是SQL Server 2008的新特性,它使我们可以向索引增加WHERE子句,这样就可以将索引聚焦到大多数重要的行上。
  • 选择性(Selectivity)
    选择性:当查询优化器(query optimizer,即QO)读取SQL时,选择性的程度决定了索引是否应该用来执行该操作。通过对索引的Statistics(或者“stats”,一个索引可以拥有一个或者多个stats)进行处理分析,QO可以作出决定。基本上,它会权衡使用索引来遍历选择的行或者对表进行扫描这两种方式。Kimberly采用的例子使这一切变得很明朗,但我们却感到惊讶:“当行数(由查询选择的)大约是表中的数据页的1/4时,索引并没有起到什么作用,这时对表进行扫描来获取选择的行效率更高。这通常发生在取出的行数不到表中总行数的5%的情况下...”

SQL Server 2005中关于索引统计、列选择、索引碎片及锁的标准实践依然可用。

Tripp和Randal也认为DTA, a.k.a. Data Engine Tuning Advisor是个有价值的工具。SQL Server 2008已经更新了DTA以提供新的特性,包括改进的工作量解析、增强的可伸缩性、多数据库调校、通过dta命令行界面的改进脚本支持。

索引

使用技巧

SQL Server 2008

SQL Server

SQL Server


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134