【发布时间】:2010-01-21 16:07:34
【问题描述】:
哪个更快?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
【问题讨论】:
标签: sql-server performance inline
哪个更快?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
【问题讨论】:
标签: sql-server performance inline
由于 Sql Server 对查询的优化,这些查询将以相同的速度运行,因为它们在逻辑上是等效的。
不过,为了简洁和可读性,我更喜欢 IN 语法。
【讨论】:
其实是一样的。
如果您显示估计的执行计划,您将看到它正在执行相同的操作。
【讨论】:
这与通过 Linq 生成 SQL 有关。在某些情况下,创建的 sql 格式为:field='xxx' OR field='yyy'。
【讨论】: