我們剛剛將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相同),但性能問題已消失,但我想知道我遇到了什麼問題,因爲我想避免重寫查詢。
的問候,湯姆
可能的重複[添加更多或CONTAINS搜索帶來查詢抓取](http://stackoverflow.com/questions/2906812/adding-more-or-searches-with-contains-brings-query-to-crawl ) – 2010-08-24 22:10:37