首頁 > 資料庫 > mysql教程 > CommandType.StoredProcedure 或 CommandType.Text:哪個更適合 C# 中的預存程序執行?

CommandType.StoredProcedure 或 CommandType.Text:哪個更適合 C# 中的預存程序執行?

Susan Sarandon
發布: 2025-01-01 07:01:09
原創
395 人瀏覽過

CommandType.StoredProcedure or CommandType.Text: Which is Better for Stored Procedure Execution in C#?

預存程序執行中的CommandType.StoredProcedure 與CommandType.Text

在C# 中使用CommandType.StoredProcedure 執行儲存程序會提示問題:是這樣嗎必要的?與使用 CommandType.Text 相比,它有什麼好處嗎?本文研究了這兩種方法的優點。

預設參數化

根據部落格研究,使用 CommandType.Text 時,SQL Server 會自動參數化 sp_executesql 中的語句。相較之下,CommandType.StoredProcedure 明確參數化過程,減輕了資料庫的工作負載,從而提高了效能。

測試和結果

使用 SQL Server Profiler,我們測試了預存程序使用兩種 CommandType 變體進行呼叫。在這兩種情況下,都會產生 RPC 呼叫。

CommandType.Text

exec sp_executesql N'dbo.Test',N'@Text1 nvarchar(5),@Text2 nvarchar(5)',@Text1=N'Text1',@Text2=N'Text2'
登入後複製
  • 文字呼叫包含在 sp_executesql 呼叫中。
  • 參數已聲明但未在call.

CommandType.StoredProcedure

exec dbo.Test @Text1=N'Text1',@Text2=N'Text2'
登入後複製
  • 沒有額外的包裝或參數聲明

結論

  • 由於明確參數化,CommandType.StoredProcedure稍微快一些。
  • 使用CommandType.Text,任何呼叫中必須包含字元參數名稱,預設參數除外

因此,為了獲得最佳效能和參數靈活性,請在C# 中執行存儲過程時使用CommandType.StoredProcedure。

以上是CommandType.StoredProcedure 或 CommandType.Text:哪個更適合 C# 中的預存程序執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板