我已将非聚集索引添加到某些表中,
我是否需要重新启动或重新编译所有存储过程以获得新索引的好处。
怎么做?
答案 0 :(得分:3)
不,你不需要。当存储过程尝试从您的表中获取数据时,查询优化器将看到您的某些表有一个索引,它将构建相应的执行计划,然后将其传递给执行引擎,以便执行。
答案 1 :(得分:0)
是。您需要重新编译存储过程以利用新索引。
有完整的解释here
答案 2 :(得分:0)
您需要重新编译存储过程(触发器,函数),但是您不需要逐个执行,您可以使用sp_recompile 'TableName'
并且SQL将重新编译所有存储过程,引用您的存储过程表并获得新索引的好处(你不会错过一个)。
跟进:我留下我的帖子 - 仍然是BOL答案 - 但正确答案似乎是:不,你没有(见其他帖子)