2014-03-26 100 views
0

我正在分析一個SQL Server 2008存儲過程,如果它是從我的ASP.NET MVC 4應用程序執行的,它會延遲4秒,但如果手動執行相同的存儲使用來自SQL Server Management Studio的相同參數進行處理,它只會延遲250毫秒,與第一個相比,讀取的讀數爲1%。SQL Server和ASP.NET MVC性能問題

任何想法爲什麼會發生這種情況,我該如何解決它?

謝謝!

+0

您是否在代碼中使用相同的輸入執行它? – Haney

+0

是的,相同的輸入,我複製分析器文本並粘貼到管理工作室,我得到沒有延遲 – Santiago

+1

爲什麼反對票,你需要多少信息? – Santiago

回答

1

爲了使其成爲公平的測試,請確保在從management studio運行查詢之前清除SQL Server緩衝區。 SQL Server緩存結果集。他們應該是平等的?如果是這樣,你需要做一些查詢調優。在此發佈執行計劃,我將嘗試診斷問題。

CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO 
DBCC FREEPROCCACHE; 
GO 
+0

它的作品就像一個魅力!但是,我真的不明白爲什麼緩存或計劃可能與來自不同環境的查詢和參數不同。感謝您的幫助 – Santiago

+1

SQL Server根據一大堆因素決定如何從表中檢索數據。從本質上說,它從過去學習(+索引,用法統計等),你已經定義。通過運行這些語句,您可以有效地告訴它從頭開始,重新學習如何再次調用您的過程。在處理任何SQL性能問題之前,最好先清除緩存,然後查看性能問題,否則可能會花費大量時間來診斷Microsoft的聰明人已經爲您解決的問題。請享用。 – sarin