我正在编写一个应用程序,该应用程序执行来自特殊文本文件的查询,并带有来自用户的参数。
我使用类似于以下代码的代码来添加参数:
IDbCommand command = GetSomeCommand();
object parameter = GetSomeParameter();
IDbDataParameter parameter = command.CreateParameter();
parameter.ParameterName = "Param1";
if (parameter is string s)
{
parameter.Size = (s.Length + 9) / 10 * 10;
parameter.Value = s;
command.Parameters.Add(parameter);
}
else
{
...
}
向上舍入到下一个10是为了减少查询计划缓存的数量。 我的问题是:我可以总是始终使用-1(对于VARCHAR(MAX))或8000作为大小,这是否有明显的缺点?