我想知道以下内容可能会对性能产生什么影响。假设有一个表,其中一个列数据类型为 int。该表包含数百万行。然后假设运行了以下 2 条 sql 语句。
SELECT * FROM tblTest WHERE colInt in (3,4)
和
SELECT * FROM tblTest WHERE colInt in ('3','4')
我相信在第二个查询中,隐含的字符数据类型将尝试转换 colInt 中的所有值,然后尝试进行比较。任何人都可以确认这是该过程的工作方式吗?有谁知道解释这一点的 MSDN 文章?这是相当昂贵的吗?
我知道这似乎很愚蠢,但是当您因为第三方软件而被迫接受它时,我们无能为力,除非完全理解当它们将几列的数据类型从 int 更改为时会产生什么影响varchar 和老虎钳对比。