sql查询的未知执行时间行为

时间:2014-02-20 12:36:56

标签: sql sql-server-2005 execution-time

案例1:

SELECT Column1, 
       Cloumn2, 
       Cloumn3 
  FROM TableName
 WHERE Column3 In (SELECT COL3 
                     FROM #TempTable)

案例2:

DECLARE @valueClo3 varchar(50)
    set @valueClo3   = 'AnyValue'
SELECT Column1, 
       Cloumn2, 
       Cloumn3 
  FROM TableName
 WHERE Column3 In (@valueClo3)

案例1花费太多时间(约3分钟),而案例2仅花费10秒钟。 #TempTable只有一个值'AnyValue'

1 个答案:

答案 0 :(得分:1)

子查询比任何其他选择花费更长的时间。话虽这么说,IN会更快,但仍然可以作为'或'。

我建议您尝试加入临时表。根据您的示例,内部联接可能会实现您的目标。