記一次C#調(diào)用存儲過程執(zhí)行緩慢,但在數(shù)據(jù)庫中執(zhí)行卻很快的問題

問題背景:
公司項目更新一個功能,所有的會員可以申請代理一款產(chǎn)品。提交申請時會傳遞會員信息代理產(chǎn)品信息等,大概有10個參數(shù)??赡苡捎谇捌谏暾埓淼娜吮容^少,所以比較正常。公司做了一次促銷活動后,量突然大了起來,這個時候,客戶反饋,申請代理時,APP反應很慢,大概需要等待10秒左右才反饋結果。經(jīng)過APP端及JAVA后端同時測試發(fā)現(xiàn)是我提供的API響應速度比較慢。

問題排查:
1、通過測試服務器調(diào)用API測試發(fā)現(xiàn),響應速度正常(說明代碼沒問題,至少是量少的情況下沒問題)。
2、通過正式服務器數(shù)據(jù)庫調(diào)用存儲過程直接執(zhí)行,響應速度正常。
3、通過正式服務器調(diào)用API測試發(fā)現(xiàn),響應速度比較慢。
4、使用日志跟蹤API各個模塊執(zhí)行執(zhí)行,最后發(fā)現(xiàn),調(diào)用存儲過程執(zhí)行返回結果這一步,響應速度比較慢。

至此,問題已經(jīng)找到了:代碼調(diào)用存儲過程執(zhí)行慢,待使用數(shù)據(jù)庫管理器執(zhí)行就很快。

猜測原因:sql預編譯的問題。
解決方案:使用WITH RECOMPILE強制SQL重新編譯(一般我們編寫存儲過程是不會加這個 WITH RECOMPILE 的)。


存儲過程示例
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容