在SQL Server數據庫中執行存儲過程很快,在c#中調用很慢的問題


記錄工作中遇到的問題,分享出來:

原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281

今天遇到一個比較郁悶的問題,如下圖:

點擊庫存或者點擊銷售,查詢數據很慢,有的將近幾十秒,查詢數據用的是存儲過程,在數據庫中執行存儲過程,查詢數據是很快的,速度非常理想,1秒不到,但是c#程序中調用就要很久。

百度了很多,后來這上面的那篇文章中找到了原因所在:

原因分析
由於存儲過程是預編譯的, 在第一次執行的時候, 會生成執行計划, 以后執行的時候, 會使用這個執行計划(除非存儲過程侯或者顯示指定重新編譯), 而不是每次執行時都去生成執行計划。
當存儲過程涉及的對象結構調整, 或者相關的數據產生了很大變化, 這可能導致原來的計划不適合當前的現狀(執行計划過期), 這種情況下應該重新編譯存儲過程。

解決方法:

exec sp_recompile @objname='存儲過程名稱'

再次測試程序,可以了,速度很很快,還是很理想的!

如果修改一次不行,可以再修改一次,再等會測試


免責聲明!

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



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