sql - IN 具有相同值的倍数是否较慢?

标签 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。

谢谢!

最佳答案

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

这样的查询的解析速度比非重复列表的查询稍慢,将产生相同的计划,并且在大多数现实场景中,您几乎不会注意到任何差异。

关于sql - IN 具有相同值的倍数是否较慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901238/

相关文章:

c# - 如何在 ASP.Net MVC 中使用内连接编写 sql 查询?

sql-server - 在一个 SQL 文件中创建多个 View

sql - SQL Server 2008 R2 中带有值计数的交叉表查询

reporting-services - 列出 SQL Server 2008 R2 中的所有数据源及其依赖关系(报告、项目等)

mysql - 如果值与唯一列冲突则更新忽略

mysql - 通过PHP将数据插入MySQL

mysql - 这些表是如何关联的?

sql-server - Postgresql的独立实例是否可能

sql - 如何在 SQL Server 中使用 row_number 获取匹配数据?

sql - 尝试安装 SSMS 18.4 版本时出错