由于额外的Where条件导致查询时间变慢

时间:2014-07-07 16:56:36

标签: sql sql-server-2008 tsql

我有一个查询,它会立即显示近6000行...但是当我添加一个部件到哪个条件......它会令人难以置信地放慢速度......这是预期的吗?对我来说,似乎任何事都应该加速,因为它返回的行数较少。

这是基本的查询结构:

SELECT table1.itemcode, 
       table1.itemdiscount, 
       table2.categoryname, 
       table2.categorycount 
FROM   table2 
       JOIN table1 
         ON table2.categoryid = table1.categoryid 
WHERE  table1.categoryid = '125' 
       AND table2.categoryname IN ( 'A', 'B', 'C' ) 

当我遗漏where where条件的最后一部分时,它几乎是瞬间......但是添加它......然后它离开了窗口。我只是错过了一些东西吗?或者性能变化是否有意义?

1 个答案:

答案 0 :(得分:0)

查询优化器可能会变得愚蠢 试试这个

SELECT table1.itemcode, 
       table1.itemdiscount, 
       table2.categoryname, 
       table2.categorycount 
  FROM table2 
  JOIN table1 
    ON table2.categoryid = table1.categoryid 
   AND table1.categoryid = '125' 
   AND table2.categoryname IN ( 'A', 'B', 'C' ) 

下一步是table2.categoryname

的索引