SQL Server 2008 Full-Text Search (FTS) is extremely slow in this scenario:
Query 1:
SELECT [...] FROM ContentItem CI WHERE (EXISTS (SELECT TOP 1 * FROM CONTAINSTABLE([Table1], *, '"[search_string]*"') FT WHERE FT.[Key] = CI.ContentItem_Id)) ORDER BY [...]
Results: super fast on SQL 2005 and SQL 2008
Query 2:
SELECT [...] FROM ContentItem CI WHERE (EXISTS (SELECT TOP 1 * FROM CONTAINSTABLE([Table2], *, '"[search_string]*"') FT WHERE FT.[Key] = CI.ContentItem_Id)) ORDER BY [...]
Results: super fast on SQL 2005 and SQL 2008
Query 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 [...]
Results: super fast on SQL 2005 (about a second), but extremely slow (3 min+) on SQL 2008
I'm aware of performance issues with SQL 2008 FTS (even on stackoverflow), but haven't find any reasonable solution yet.