2013-04-25 45 views
0

當針對表運行sp_recompile時,我明白所有依賴於該表的存儲過程和觸發器都將被重新編譯。表上的SQL Server sp_recompile

我不明白的是SQL Server使用這個重新編譯的參數。我看不出參數嗅探會在這裏產生影響。它是否使用類似於OPTIMIZE FOR UNKNOWN的方式來編譯「通用」執行計劃?

我覺得我錯過了一些非常明顯的東西。

有沒有人對此有所瞭解?

+3

它不重新編譯存儲過程。它*標記*他們重新編譯。他們將在下次運行時重新編譯。 – 2013-04-25 01:41:46

+0

非常感謝亞倫! – PseudoToad 2013-04-25 14:57:04

+0

我是否正確,這是索引重建或刷新統計信息時發生的相同事情? – PseudoToad 2013-04-25 15:04:10

回答

2

sp_recompile不執行對象本身的重新編譯。它只刪除所有保存的執行計劃。這會強制重新編譯下一次對象調用(使用下一次調用的參數)。