2010-08-24 53 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

回答

相關問題