我知道当一个表有索引列时,sql server会复制这些列的数据,以便可以快速访问它而无需查看每个记录。如果索引被其他列覆盖,那么所有这些包含的列也会与索引列一起存储。
所以,我假设当任何索引列或包含列发生更新时,很明显更新应该在实际记录位置和索引位置发生。这一点对我来说很有意思,因为如果一个表预计会有更多的更新而不是搜索,那么获取索引会不会是开销?我想对此进行确认,并且还希望了解更新发生时屏幕背后实际发生的内容。
答案 0 :(得分:0)
是的,你说得对。添加索引时需要权衡。它们有可能使选择更快,但它们会使更新/插入/删除更慢。
答案 1 :(得分:0)
设计索引时,请考虑以下数据库准则:
有关详细信息,请查看以下链接: -
http://technet.microsoft.com/en-us/library/jj835095(v=sql.110).aspx