表中用于创建索引的最佳行数

时间:2016-10-31 15:52:10

标签: sql-server indexing

我的理解是,在小表上创建索引可能比成本更高。

例如,在少于100行(甚至1000行?)的表上创建索引是没有意义的。

是否有任何特定行数作为创建索引的阈值?

更新1

我正在调查的越多,我就越能获得相互矛盾的信息。我可能太担心保留IO写操作;因为我的SQL服务器数据库处于HA同步提交模式。

第1点:

这个问题非常关注IO写入性能。对于SQL Server HA同步提交模式等场景,当数据库服务器驻留在跨子网数据中心时,IO写入的成本很高。添加索引会增加昂贵的IO写入成本。

第2点:

Books Online建议:

  

索引小表可能不是最佳的,因为它可以进行查询   优化器更长,遍历索引搜索数据而不是   执行简单的表扫描。因此,小表上的索引可能   永远不会被使用,但仍必须作为表格中的数据进行维护   变化。

我不确定在只有1行的表中添加索引会有什么好处 - 或者我错了?

1 个答案:

答案 0 :(得分:3)

你的理解是错误的。当用于连接较大的表时,小表也会受益于索引。

索引的成本有两个部分,即插入/更新期间的存储空间和处理时间。这一天第一个很便宜所以几乎丢弃了。因此,只有当您拥有包含大量更新的表并且插入应用正确的配置时,您才应该考虑。