使用存儲過程非常慢,但是直接執行SQL很快。 了解基本情況后,初步判斷是參數嗅探問題 在對應的SQL語句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 參考了 http://www.cnblogs.com/kerrycode/p ...
前言 最近,在工作中發現,兩個問題: .應用程序調用存儲過程很慢,但是在查詢分析器中把SQL語句拿出來執行存儲過程就很快。 .在查詢分析器中執行存儲過程很慢,但是把存儲過程中的內容拿出來執行很快 問題的分析與解決 問題 產生原因 在應用程序中 或者在查詢分析器中 調用存儲過程的時候,存儲過程的執行計划是被緩存了,就算參數不同,還是按照老的執行計划查詢,效率也會不同。 問題 解決方法 直接在存儲過程 ...
2021-05-21 12:17 0 2162 推薦指數:
使用存儲過程非常慢,但是直接執行SQL很快。 了解基本情況后,初步判斷是參數嗅探問題 在對應的SQL語句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 參考了 http://www.cnblogs.com/kerrycode/p ...
1、在查詢分析器上執行:exec sp_recompile @objname='存儲過程名稱' 解析:由於存儲過程是預編譯的, 在第一次執行的時候, 會生成執行計划, 以后執行的時候, 會使用這個執行計划(除非存儲過程侯或者顯示指定重新編譯),而不是每次執行時都去生成執行 ...
1、在查詢分析器上執行:exec sp_recompile @objname='存儲過程名稱' 解析:由於存儲過程是預編譯的, 在第一次執行的時候, 會生成執行計划, 以后執行的時候, 會使用這個執行計划(除非存儲過程侯或者顯示指定重新編譯),而不是每次執行時都去生成執行計划。 當存儲過程 ...
.NET調用存儲過程時,有時候會變的很慢甚至會timeout,但是再執行一下存儲過程,再調用就會很快。 解決辦法: 1. 在可能比較耗時的語句后面加上option(recompile) 2. 創建存儲過程時在其定義中指定 WITH RECOMPILE 選項,表明 SQL Server ...
,在數據庫中執行存儲過程,查詢數據是很快的,速度非常理想,1秒不到,但是c#程序中調用就要很久。 百度了 ...
1. 場景: ①存儲過程執行慢,但是存儲過程中拆出來的SQL語句執行並不慢。 ②存儲過程執行慢,但是重新執行存儲過程(重新編譯存儲過程)后,存儲過程執行正常。 2. 解決方案: 在存儲過程中國對應的SQL語句后面使用OPTION (RECOMPILE) ,但是考慮 ...
最近執行一個存儲過程,速度奇慢,將單獨的SQL拉出來執行速度很快,找了多方原因,判斷原因是參數傳遞的原因。 解決方法 :定義一個新的變量,將參數的值 賦給變量,速度有所改善 附全部SQL ...
參考: http://www.debugease.com/mssqlbasic/976568.html https://www.cnblogs.com/Irving/p/3951220.html ...