存储过程执行中的 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中文网其他相关文章!