2010-08-24 64 views
2

我们刚刚将SQL Server 2005升级到SQL Server 2008 R2,并注意到一些性能问题。 下面的查询已经很慢了,但现在在2008年它只是超时。我们重建目录,以确保其在2008年升级后全文查询需要几分钟而不是分秒

DECLARE @FREETEXT VARCHAR新鲜的(255)= 'TEN-T'

select Distinct ... 
from 
    DOSSIER_VERSION 
    inner join 
    DOSSIER_VERSION_LOCALISED ... 
where 

    CONTAINS(DOSSIER_VERSION.*,@FREETEXT) 
or 
    CONTAINS(DOSSIER_VERSION_LOCALISED.*,@FREETEXT) 

的查询接受分钟如果启用了这两个条件。

如果你只是把下面的地方

CONTAINS(DOSSIER_VERSION。*,@ FREETEXT)

其超快。同去的,如果它只是

包含案例(DOSSIER_VERSION_LOCALISED。*,@ FREETEXT)

由于我们OR符号,结果我预计的时间为这个查询运行到小于的总和,但如上所述,它需要几分钟/次。

任何人都可以告诉我这里发生了什么?如果我使用联合(这在概念上与or相同),但性能问题已消失,但我想知道我遇到了什么问题,因为我想避免重写查询。

的问候,汤姆

+1

可能的重复[添加更多或CONTAINS搜索带来查询抓取](http://stackoverflow.com/questions/2906812/adding-more-or-searches-with-contains-brings-query-to-crawl ) – 2010-08-24 22:10:37

回答

相关问题