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