=运算符是否比T-SQL中的运算符更有效

=运算符是否比T-SQL中的运算符更有效,sql,performance,tsql,Sql,Performance,Tsql,为了简化我正在设计的应用程序,我最近一直在研究编写查询的最有效方法。我的一位同事提到,如果可能的话,我应该使用=而不是IN(),因为IN的使用速度比IN慢。然而,我一直无法找到任何来源来支持这一点 这里有人知道这是真是假吗?如果是这样,你知道为什么吗 所以你有一些代码来了解我的要求,这是我要求的一个例子 这是: SELECT [Some Columns]... FROM db.dbo.table WHERE [this column] = 'Something' 比这更有效率: SELECT

为了简化我正在设计的应用程序,我最近一直在研究编写查询的最有效方法。我的一位同事提到,如果可能的话,我应该使用=而不是IN(),因为IN的使用速度比IN慢。然而,我一直无法找到任何来源来支持这一点

这里有人知道这是真是假吗?如果是这样,你知道为什么吗

所以你有一些代码来了解我的要求,这是我要求的一个例子

这是:

SELECT [Some Columns]... FROM db.dbo.table WHERE [this column] = 'Something' 
比这更有效率:

SELECT [Some Columns]... FROM db.dbo.table WHERE [this column] IN ('Something' )

如果是这种情况,SQL Server将为您执行这种(琐碎的)重写。事实并非如此。优化器的功能远远超出了这些琐碎的重写


您的同事迷信SQL Server。

这实际上取决于您的查询。让我们假设(1,2,3)中的列就像您正在搜索column=1、column=2或column=3。如果您有索引,请在运算符或运算符中使用。通常,我更喜欢在运算符中使用“=”运算符表示单个值,在运算符中使用“=”运算符表示多个值。

将这两个值放在SMS中,然后显示查询计划。我将为每个项目展示相同的计划,每个项目占总成本的50%。这是向你的同事证明的最简单的方法


有一些语法可能更有效,如in上存在的语法,但这不是其中一种情况。

它将是相同的。优化器将生成相等的plansWrite可读代码。仅在必要时进行优化。小心万恶之源。