0

当存储过程将 varchar(max) 隐式转换为数字时,SQL 中是否存在性能损失?我知道转换非数字字符串将是一个坏问题,但我对理想数据的性能更加好奇。

4

1 回答 1

1

我认为性能不应该是您关心的问题:准确性是关键。

如果允许隐式转换,则无法保证优化器选择的数据类型的规模和精度。

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

如果您真的想选择性能,那么我想显式会更快,因为隐式必须首先扫描行样本才能假定它应该转换为哪种类型。

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

于 2013-08-13T14:10:10.237 回答