【发布时间】:2013-12-11 13:59:25
【问题描述】:
我正在 SQL Man 中测试几个存储过程。 studio 和我收到了一些关于在何处以及如何在相关表上添加索引的建议。
我的困境是 - 向原始表添加额外的索引更好,还是更好的方法是从该表创建一个视图并在新生成的视图上设置索引?我目前正在原始表上设置索引,希望这是正确的做法。
【问题讨论】:
我正在 SQL Man 中测试几个存储过程。 studio 和我收到了一些关于在何处以及如何在相关表上添加索引的建议。
我的困境是 - 向原始表添加额外的索引更好,还是更好的方法是从该表创建一个视图并在新生成的视图上设置索引?我目前正在原始表上设置索引,希望这是正确的做法。
【问题讨论】:
最好在原桌子上做。
即使在 Enterprise Edition 上,视图上的索引也比直接在基表上匹配和使用的可能性要小得多。
当想要具体化更复杂的数据子集(例如,预先计算的聚合查询)时,索引视图通常更有用。
【讨论】:
是的,如果我在表上遇到性能问题,我发现 SQL Server DMV 关于向表中添加哪些索引的建议非常有用,并且确实加快了表上的 CRUD 性能问题。
请注意,在向表中添加建议的索引后,测试性能是提高还是变差很重要。
观点的优缺点有据可查here
【讨论】: