2012-06-28 212 views
0

我有SQL Server 2005中有2個存儲過程(sp1sp2)與相同的SQL腳本(沒有任何差異,除了名稱)。SQL Server 2005 - 優化存儲過程

當我嘗試執行sp1時,它返回的結果超過3000行,時間爲0-1秒。 但是當我運行sp2它將在10秒內返回這3000行。

想知道是否有任何工具/命令/任何可以設置特定存儲過程來優化的任何東西?

謝謝。

+0

你正在執行那些在同一個數據庫?或者不同的?聽起來像是兩個獨立的數據庫,第二個數據庫有過時的統計數據或類似的東西。 –

+0

它的數據庫相同! – Yogesh

回答

0

SQL Server保存如何執行代碼的「計劃」。

如果一個存儲過程針對一小部分數據運行,它將針對一個小數據集進行優化。對於大型數據集來說情況正好相反。

即使世界一個不錯OPTIMIZE FOR功能在2008年,但在2005年你被卡住WITH RECOMPILE。這意味着每次運行時都會重新編譯它,在某些情況下,這是最優化的!

+0

感謝您的信息。在Sql Server 2005上運行這2個過程。 – Yogesh