2015-04-17 36 views
0

在SQL Server 2008中,如果在创建索引之前创建存储过程,存储过程会在创建它们之后使用这些索引吗?Sql服务器存储过程和索引

+4

一个简单的答案:是的,它会:) – dean

+0

稍微复杂的答案:可能它会:) – DavidG

+0

存储过程运行在表上是否有索引的。 –

回答

1

简短的回答是肯定的。存储过程甚至可以在它们使用的表存在之前存在。

更长的答案意味着您需要了解执行计划和SQL Server保留的计划缓存。当一个过程运行时,它的计划(可以包含要使用的索引)被缓存并保存一段时间。因此,索引可能会立即使用,或者在当前执行计划从缓存中过期后使用。

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