我有一個非常大的存儲過程,它採用單個參數@date
。當我突出顯示SQL代碼並執行時,查詢在大約25秒內運行。但是,如果我嘗試在一個單獨的窗口中運行存儲過程使用:Exec <存儲過程>極慢
Exec <Stored Procedure> @date = '2013-10-16'
存儲過程大約需要一個小時半的運行。任何想法爲什麼這可能會發生?我也試圖通過BIDS來運行它,而存儲過程只需要運行一段時間。
注:當我強調要執行的代碼,我用
Declare @date as date = '2013-10-16'
設置參數。
我會檢查正在將proc中使用的源表,看看它們1.有多大和2索引和索引的碎片。 – GPH
嘗試清除你的sql執行計劃。 http://stackoverflow.com/questions/1288808/sql-server-2005-how-do-you-clear-out-a-query-execution-plan –
高亮顯示的代碼與存儲過程的創建/修改聲明,將創建/保存存儲過程。 在第二個窗口中,你實際上是在執行過程帶來的結果,如果考慮到太多的時間,也許有一個索引問題,或數據量過多過程中,使用的執行計劃,檢查那裏是被更慢 –