索引对表修改的性能有什么影响?

ste*_*eve 6 index sql-server

我一直想知道索引对 SQL Server 中的表修改有什么影响。随着应用于该表的索引数量的增加,对表的修改是否会变慢?

我的直觉说这会导致重新索引的开销,但我可能是错的。

Tho*_*ger 5

正如@mrdenny 所说,每个索引都需要通过 INSERT/UPDATE/DELETE 操作进行更改。

如果您对索引实际上已被充分利用而感到厌倦,并且这不仅仅是性能下降,您应该查询sys.dm_db_index_usage_stats.

以下是返回的一些重要字段:

  • user_seeks bigint 用户查询的搜索次数。

  • user_scans bigint 用户查询的扫描次数。

  • user_lookups bigint 用户查询的书签查找次数。

  • user_updates bigint 用户查询的更新数。

  • last_user_seek datetime 上次用户搜索的时间

  • last_user_scan datetime 上次用户扫描的时间。

  • last_user_lookup datetime 上次用户查找的时间。

  • last_user_update datetime 上次用户更新的时间。


mrd*_*nny 4

添加到表中的每个索引都会减慢插入/更新/删除操作,因为现在发生插入/更新/删除操作时需要进行更多物理更改。