2015-05-20 40 views
3

我需要找到一些文本非常龐大的數據庫全文索引,並且我不知道在查詢中的術語變體中使用什麼更好。在SQL Server FullText中使用'CONTAINS(Foo,「A」)或包含(Foo,「B」)與CONTAINS(Foo,'「A」或「B」')

我已經看到了使用

SELECT 
    Foo.Bar 
FROM 
    Foo 
WHERE 
    CONTAINS(Foo.Bar, '"A" OR "B"') 

什麼是更好地使用使用

SELECT 
    Foo.Bar 
FROM 
    Foo 
WHERE 
    CONTAINS(Foo.Bar, "A") OR 
    CONTAINS(Foo.Bar, "B") 

一些例子,一些例子嗎?爲什麼?

+1

更好的怎麼樣?更快?可能最好只是做一些自己的測試來比較。 – DLeh

+0

目標是更快,但我的問題是一般(更快,使用更少的RAM,CPU等...) –

回答

2

鞏固對CONTAINS的呼叫(您的第二個例子)將需要較少的工作。每個CONTAINS謂詞都會涉及一些開銷,比如全文查詢的編譯可能會受到限制。這是在TechNet上提出的建議之一。

隨着中說,區別可基於許多像索引大小,查詢,那包含查詢詞的文檔數量的因素可以忽略不計......

相關問題