Това е труден проблем, тъй като CONTAINSTABLE може да търси наведнъж само FTS индекс на една таблица. Вашето UNION решение по-горе е добре, стига производителността ви да е приемлива.
Изправихме се пред същия проблем с необходимостта от ефективно търсене в много колони от много таблици в една заявка. Това, което направихме, беше да обединим всички данни от тези колони и таблици в една таблица само за четене. Тогава нашата заявка се нуждаеше само от едно извикване на CONTAINSTABLE
CONTAINSTABLE(AggregatedTable, AggregatedColumn, @FtsQuery)
Имаме планирано задание, което се изпълнява на всеки 5-10 минути и постепенно агрегира всяко модифицирано съдържание от нашата изходна таблица в нашата единична таблица с агрегирано съдържание само за четене.
Като цяло изглежда, че използването на FTS във всяка база данни с разумен размер и потребителско натоварване означава, че винаги се борите с производителността. Ако установите, че каквото и да правите, не можете да постигнете приемлива производителност, може да се наложи да проучите други технологии катоLucene .