SQL Server 2008的全文搜索(FTS)在這種情況下極其緩慢:SQL Server 2008的全文搜索(FTS)極其緩慢時,在一個以上的CONTAINSTABLE查詢
查詢1:
SELECT [...] FROM ContentItem CI WHERE
(**EXISTS** (SELECT TOP 1 * FROM **CONTAINSTABLE**([**Table1**], *, '"[search_string]*"') FT
WHERE FT.[Key] = CI.ContentItem_Id))
ORDER BY [...]
結果:在SQL 2005和SQL超快2008
查詢2:
個SELECT [...] FROM ContentItem CI WHERE
(**EXISTS** (SELECT TOP 1 * FROM **CONTAINSTABLE**([**Table2**], *, '"[search_string]*"') FT
WHERE FT.[Key] = CI.ContentItem_Id))
ORDER BY [...]
結果:在SQL 2005和SQL超快2008
查詢3:
SELECT [...] FROM ContentItem CI WHERE
(**EXISTS** (SELECT TOP 1 * FROM **CONTAINSTABLE**([**Table1**], *, '"[search_string]*"') FT
WHERE FT.[Key] = CI.ContentItem_Id)
**OR EXISTS** (SELECT TOP 1 * FROM **CONTAINSTABLE**([**Table2**], *, '"[search_string]*"') FT
WHERE FT.[Key] = CI.ContentItem_Id))
ORDER BY [...]
結果:在SQL 2005超快速(大約一秒鐘),但在SQL 2008上非常慢(3分鐘+)
我知道SQL 2008 FTS的性能問題(甚至在stackoverflow上),但還沒有找到任何合理的解決方案。