当前位置:  开发笔记 > 编程语言 > 正文

何时创建新的SQL Server索引?

如何解决《何时创建新的SQLServer索引?》经验,为你挑选了1个好方法。

显然(methinks),在BIT列上创建索引是不必要的.但是,如果你有,你需要寻找其中的每个值可能唯一的,就像一列BlogPostStreetAddress什么的,那么指数似乎是适当的(再次没有记错).

但是什么是截止?如果您期望10,000行,并且您将拥有大约20个唯一值,该怎么办?是否应该创建索引?

提前致谢.



1> James Schek..:

对此的最佳答案是分析您的查询并查看索引是否可以改进您的查询.回答这个问题的困难在于,几乎不可能概括查询优化器的行为.

也就是说,一个经验法则是,如果您对表上的给定查询的选择性为10%或更低,那么您很可能会从索引中受益.因此,在您的示例中,如果您的值均匀分布,您可能会从索引中受益.但是,考虑到您的桌子很小,所以您的性能提升可能会微不足道.

这不是一个硬性规则,因为有很多因素可以改变10%的数量,包括使用聚簇或其他索引类型,行的大小,如果某些列不是内联,查询结构等.

还要记住,插入带索引的表会有明显的性能损失.如果经常更新或附加此表,则可以通过较慢的插入和更新来抵消索引的速度提升.

请参阅有关Tablescan与索引访问的MSDN文章.

编辑:正如其他人所指出的,如果您正在执行聚合查询(例如计算特定值出现的次数),您的查询可能会从索引中受益.如果您经常对特定列进行排序,也可能会受益.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有