To je obtížný problém, protože CONTAINSTABLE může prohledávat FTS index pouze jedné tabulky najednou. Vaše výše uvedené řešení UNION je v pořádku, pokud je váš výkon přijatelný.
Čelili jsme stejnému problému, kdy bylo potřeba efektivně prohledávat mnoho sloupců z mnoha tabulek v jediném dotazu. Udělali jsme agregaci všech dat z těchto sloupců a tabulek do jediné tabulky pouze pro čtení. Náš dotaz pak potřeboval pouze jediné volání CONTAINSTABLE
CONTAINSTABLE(AggregatedTable, AggregatedColumn, @FtsQuery)
Máme naplánovanou úlohu, která se spouští každých 5–10 minut a postupně agreguje veškerý upravený obsah z naší zdrojové tabulky do naší jediné agregované tabulky obsahu pouze pro čtení.
Obecně se zdá, že používání FTS v jakékoli přiměřeně velké databázi a uživatelské zátěži znamená, že vždy bojujete s výkonem. Pokud zjistíte, že bez ohledu na to, co děláte, nemůžete dosáhnout přijatelného výkonu, možná budete muset prozkoumat další technologie, jako je Lucen .