我正在使用SqlParameter添加参数,以便可以执行存储过程。
我想知道传递SqlDbType与传递它之间的区别。如果我们也传递SqlDbType,我们会得到什么好处?
答案 0 :(得分:0)
指定要在SqlParameter中使用的字段属性的SQL Server特定数据类型。 这将有助于执行存储过程期间的性能,因为在运行时更改数据类型所需的工作量较少。 这样可以避免由于数据不合适导致的类型转换和运行时错误。
答案 1 :(得分:0)
如果多次调用您的查询,那么精确定义参数可以让数据库引擎更好地进行优化。
This is a very important article关于数据访问代码对性能的影响。
基本上,如果正确指定参数的类型,大小,精度和比例,Sql Optimizer可以重用您的查询,而无需重新制定昂贵的查询计划。
例如。使用AddWithValue(一个有用的shrtcut)添加一个字符串参数将使优化无效,因为每次调用存储过程时,字符串都会以NVarChar类型传递并具有可变大小。