类似WHERE子句的性能比较

时间:2012-06-06 20:03:42

标签: sql-server-2005 sql-server-2008-r2

我想知道以下2个查询之间存在任何性能差异。

查询1:

Select
         personName
From tbl
Where personName = 'Asif'

QUERY2:

Select
         personName
From tbl
Where personName = 'Muhammad Asif'

PersonName字段不在索引上。 我只想知道当我们搜索一个有空格的字符串时,sql引擎需要更多的精力/时间来执行查询,或者它的行为与没有空格的行为相同。

矮个子:

  1. 如果字符串像没有空格但像Asif或字母数字Q1234
  2. 一样短
  3. 如果字符串包含'Muhammad Asif'等空格
  4. 如果字符串包含空格且其位长,如“我的名字是汗”
  5. sql引擎对这些搜索条件的影响是什么?

1 个答案:

答案 0 :(得分:0)

如果您正在寻找Muhammad Asif,您的第一个查询将不会返回该记录。如果你在where子句中使用等号,它将只返回完全匹配。

如果您要查找包含名称'asif'的记录,可以使用

WHERE personName LIKE'%Asif%'将返回Asif和Muhammad Asif以及包含Asif的任何其他记录。但是,LIKE是一个资源密集型查询