預存程序執行中的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'
CommandType.StoredProcedure
exec dbo.Test @Text1=N'Text1',@Text2=N'Text2'
結論
因此,為了獲得最佳效能和參數靈活性,請在C# 中執行存儲過程時使用CommandType.StoredProcedure。
以上是CommandType.StoredProcedure 或 CommandType.Text:哪個更適合 C# 中的預存程序執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!