IN与多个相同的术语较慢?

时间:2012-06-05 16:35:30

标签: sql sql-server sql-server-2008-r2

例如,这明显变慢了吗?

DELETE FROM [table] WHERE [REOID] IN ( 1, 1, 1, 2, 2, 1, 3, 5)

比这个:

DELETE FROM [table] WHERE [REOID] IN ( 1, 2, 3, 4)

SQL Server 2008 R2。

谢谢!

1 个答案:

答案 0 :(得分:3)

大多数引擎会在解析阶段消除常量IN列表中的重复项。

这样的查询会比使用非重复列表的查询稍微慢一些,会生成相同的计划,并且对于大多数真实场景,您几乎不会发现任何差异。