SQL Server 2008或更高版本:是否有明确的标准来确定我是否应该创建索引?

时间:2015-01-22 17:55:35

标签: sql-server sql-server-2008

我一直在阅读" Microsoft SQL Server 2008:初学者指南"并且遇到了有关指数的章节。本书非常出色地演示如何来创建索引,但不是为什么来创建索引。

我也没能在互联网上找到任何令人满意的解释。我找到的所有不同的搜索结果都是主题的变体:"如何创建索引。"

我的问题是:是否有一个明确的标准可用于确定我是否创建索引?到目前为止,我已经阅读过应该智​​能地使用索引,并且它可能会为频繁插入,更新和删除的表创建开销问题(对于我的数据库来说也是如此)。

答案是"它取决于 - 继续监控和调整"或者是否有一个清晰的标准我可以用来确定我是否应该使用指数?

感谢您的任何见解。

1 个答案:

答案 0 :(得分:1)

没有明确的标准。只有经验法则:

总体规则:如果在"决策背景中使用字段" (例如wherejoinorder by等等,然后将其编入索引。

之后,它归结为使用案例。即

很少阅读,经常修改 - 索引可能会受到伤害。保持索引最新的开销可能会超过索引给予相对稀有的读取和#34;操作

经常阅读,很少修改 - 绝对。索引维护开销仅在修改表时支付。由于您很少修改,因此读取操作的效率提升将大大超过索引开销成本。

一些读取/一些更新 - 无法说明 - 您必须对特定情况进行基准测试。具有一个索引的表将比具有数百个(重叠?)索引的表具有更少的维护开销。