Jak již bylo zmíněno, můžete do sloupců názvů přidat kontextový index ctx.
za předpokladu, že se aktualizuje malý počet záznamů, jednou možností je aktualizovat index denně. (a zaznamenejte, kdy se to stalo)
pak do prohledávané tabulky přidejte sloupec a index s datem poslední aktualizace.
Mělo by být možné skenovat váš ctx index pro většinu starých nezměněných dat a vybrat si z malého procenta aktualizovaných dat pomocí tradičního LIKEe.g:
WHERE (lastupdated<lastrefresh AND contains(name,'%ABC%'))
OR (lastupdated>lastrefresh AND name like '%ABC%')
POZNÁMKA:Možná zjistíte, že váš plán dotazů je trochu mentální (spousta bitmapových konverzí na ID řádků), v takovém případě rozdělte 2 části OR na dotaz UNION ALL.např
SELECT id FROM mytable
WHERE
(lastupdate>lastrefresh and name LIKE '%ABC%')
UNION ALL
SELECT id FROM mytable
WHERE lastupdate<lastrefresh and CONTAINS(name, '%ABC%', 1) > 0