我有SQL Server 2005中有2個存儲過程(sp1
和sp2
)與相同的SQL腳本(沒有任何差異,除了名稱)。SQL Server 2005 - 優化存儲過程
當我嘗試執行sp1
時,它返回的結果超過3000行,時間爲0-1秒。 但是當我運行sp2
它將在10秒內返回這3000行。
想知道是否有任何工具/命令/任何可以設置特定存儲過程來優化的任何東西?
謝謝。
我有SQL Server 2005中有2個存儲過程(sp1
和sp2
)與相同的SQL腳本(沒有任何差異,除了名稱)。SQL Server 2005 - 優化存儲過程
當我嘗試執行sp1
時,它返回的結果超過3000行,時間爲0-1秒。 但是當我運行sp2
它將在10秒內返回這3000行。
想知道是否有任何工具/命令/任何可以設置特定存儲過程來優化的任何東西?
謝謝。
SQL Server保存如何執行代碼的「計劃」。
如果一個存儲過程針對一小部分數據運行,它將針對一個小數據集進行優化。對於大型數據集來說情況正好相反。
即使世界一個不錯OPTIMIZE FOR
功能在2008年,但在2005年你被卡住WITH RECOMPILE
。這意味着每次運行時都會重新編譯它,在某些情況下,這是最優化的!
感謝您的信息。在Sql Server 2005上運行這2個過程。 – Yogesh
你正在執行那些在同一個數據庫?或者不同的?聽起來像是兩個獨立的數據庫,第二個數據庫有過時的統計數據或類似的東西。 –
它的數據庫相同! – Yogesh