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

来源:https://www.cnblogs.com/liuping666/archive/2019/09/19/11551710.html
-Advertisement-
Play Games

記錄工作中遇到的問題,分享出來: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一個比較鬱悶的問題,如下圖: 點擊庫存或者點擊銷售,查詢數據很慢,有的將近幾十秒,查詢數據用的是存儲過程,在資料庫中執行 ...


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

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

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

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

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

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

解決方法:

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

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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現象:客服反饋webmail發信上傳附件時,報錯提示上傳失敗,發信時提示發送失敗前因:運維同事新增加了三台伺服器 1.伺服器上有一個掛載的公共目錄,該目錄是存儲的上傳後的附件文件.該路徑是通過一個軟鏈接鏈接過去的,在新增加的機器上,沒有這個軟鏈接,因此就找不到上傳目錄報許可權錯誤 2.增加軟鏈接後,觀 ...
  • Windows校驗文件值的三種方式 win鍵+R鍵輸入cmd調出命令行 查看MD5值: certutil -hashfile 文件名 MD5 查看 SHA1 certutil -hashfile 文件名 SHA1 查看SHA256 certutil -hashfile 文件名 SHA256 ...
  • 1.下載 地址: https://filezilla-project.org/download.php?type=server 點擊下載 2. 安裝較為簡單, 不詳細介紹,下麵說配置 2.1 添加用戶 2.2 共用的文件夾 2.3 訪問IP設置 3. 設置參數 3.1 設置監聽參數 3.2 埠分配 ...
  • jumpserver 堡壘機 重啟啟動順序 ...
  • 使用的sql圖形軟體:SQLyogEnt 使用的資料庫:MYSQL5.7 軟體地址: 鏈接:https://pan.baidu.com/s/1lajyXaSnmrO1v5v987NOoA 提取碼:i3a4 //創建名為student的資料庫 create database student; //顯示 ...
  • 這三個不同的數據模型之間既相互獨立,又存在著關聯。從現實世界到概念 模型的轉換是由資料庫設計人員完成的;從概念模型到邏輯模型的轉換可以 由資料庫設計人員完成,也可以用資料庫設計工具協助設計人員完成;從邏 輯模型到物理模型的轉換主要是由資料庫管理系統完成的。 ...
  • [20190918]shrink space與ORA-08102錯誤.txt1.環境:SCOTT@test01p> @ ver1PORT_STRING VERSION BANNER CON_ID IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c ...
  • 1、將命令寫在文件中 數據量比較大的話,建議用程式去生成文件。例如: 生成的文件可能是這樣的: 接下來,命令行執行 這個例子比較簡單,可以這麼做,如果命令比較多的話可以寫成shell腳本 2、grep命令 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...