Jest to trudny problem, ponieważ CONTAINSTABLE może jednocześnie przeszukiwać tylko indeks FTS jednej tabeli. Powyższe rozwiązanie UNION jest w porządku, o ile wydajność jest akceptowalna.
Stanęliśmy przed tym samym problemem, polegającym na konieczności wydajnego przeszukiwania wielu kolumn z wielu tabel w jednym zapytaniu. To, co zrobiliśmy, to agregacja wszystkich danych z tych kolumn i tabel w jednej tabeli tylko do odczytu. Nasze zapytanie wymagało wtedy tylko jednego połączenia CONTAINSTABLE
CONTAINSTABLE(AggregatedTable, AggregatedColumn, @FtsQuery)
Mamy zaplanowane zadanie, które jest uruchamiane co 5-10 minut i przyrostowo agreguje zmodyfikowaną zawartość z naszej tabeli źródłowej do naszej pojedynczej tabeli zagregowanej zawartości tylko do odczytu.
Ogólnie rzecz biorąc, wydaje się, że używanie FTS w dowolnej bazie danych o rozsądnych rozmiarach i obciążeniu użytkownikami oznacza, że zawsze walczysz z wydajnością. Jeśli okaże się, że bez względu na to, co robisz, wydajność nie jest akceptowalna, być może będziesz musiał zbadać inne technologie, takie jakLucene .