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超高速(第2程度)、SQL 2008では極端に遅い(3分以上)
私はSQL 2008 FTSのパフォーマンス問題(stackoverflow上でさえ)を認識していますが、合理的な解決策はまだ見つかりません。