2015-04-17 38 views
0

在SQL Server 2008中,如果在創建索引之前創建存儲過程,存儲過程會在創建它們之後使用這些索引嗎?Sql服務器存儲過程和索引

+4

一個簡單的答案:是的,它會:) – dean

+0

稍微複雜的答案:可能它會:) – DavidG

+0

存儲過程運行在表上是否有索引的。 –

回答

1

簡短的回答是肯定的。存儲過程甚至可以在它們使用的表存在之前存在。

更長的答案意味着您需要了解執行計劃和SQL Server保留的計劃緩存。當一個過程運行時,它的計劃(可以包含要使用的索引)被緩存並保存一段時間。因此,索引可能會立即使用,或者在當前執行計劃從緩存中過期後使用。

查看Execution plan basics瞭解更多信息。