【原】SQL存儲過程調用慢,但是重新編譯一下存儲過程就很快


.NET調用存儲過程時,有時候會變的很慢甚至會timeout,但是再執行一下存儲過程,再調用就會很快。

 

解決辦法:

1. 在可能比較耗時的語句后面加上option(recompile)

2. 創建存儲過程時在其定義中指定 WITH RECOMPILE 選項,表明 SQL Server 將不對該存儲過程計划進行高速緩存;該存儲過程將在每次執行時都重新編譯。當存儲過程的參數值在各次執行間都有較大差異,導致每次均需創建不同的執行計划時,可使用 WITH RECOMPILE 選項。此選項並不常用,因為每次執行存儲過程時都必須對其進行重新編譯,這樣會使存儲過程的執行變慢。

在執行存儲過程時指定 WITH RECOMPILE 選項,可強制對存儲過程進行重新編譯。僅當所提供的參數不典型,或者自創建該存儲過程后數據發生顯著更改時才應使用此選項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM