Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当存储过程将 varchar(max) 隐式转换为数字时,SQL 中是否存在性能损失?我知道转换非数字字符串将是一个坏问题,但我对理想数据的性能更加好奇。
我认为性能不应该是您关心的问题:准确性是关键。
如果允许隐式转换,则无法保证优化器选择的数据类型的规模和精度。
如果您显式声明类型,那么您可以获得确定性结果。
如果您真的想选择性能,那么我想显式会更快,因为隐式必须首先扫描行样本才能假定它应该转换为哪种类型。
更新:假设您对比较中使用的值进行了隐式转换:如果隐式转换数据类型与比较列的数据类型不匹配,您将引发进一步的性能问题。