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上),但还没有找到任何合理的解决方案。