性能隐式-vs- SQL存储过程中的显式转换?

时间:2013-08-13 13:57:42

标签: sql sql-server

当存储过程隐式将varchar(max)转换为数字时,SQL是否会出现性能损失?我知道转换非数字字符串会是一个不好的问题,但我对理想数据的性能更感兴趣。

1 个答案:

答案 0 :(得分:1)

我不认为表现应该是你的关注点:准确性是关键。

如果允许隐式转换,则无法保证优化程序选择的数据类型的比例和精度。

如果您明确声明了类型,那么您就可以获得确定性结果。

如果确实希望选择性能,那么我认为显式会更快,因为隐式必须首先扫描行样本才能假设它应该转换为。

更新:假设您对比较中使用的值进行了隐式转换:如果隐式转换数据类型与比较列的类型不匹配,则会导致进一步的性能问题。