Come già accennato potresti aggiungere un indice di contesto ctx alle colonne dei nomi.
supponendo che un piccolo numero di record venga aggiornato, 1 opzione è aggiornare l'indice ogni giorno. (e registra quando è successo)
quindi aggiungi una colonna e un indice della data dell'ultimo aggiornamento alla tabella che stai cercando.
Dovrebbe essere possibile scansionare il tuo indice ctx per la maggior parte dei vecchi dati invariati e selezionare dalla piccola percentuale di dati aggiornati usando il tradizionale LIKE es:
WHERE (lastupdated<lastrefresh AND contains(name,'%ABC%'))
OR (lastupdated>lastrefresh AND name like '%ABC%')
NOTA:potresti scoprire che il tuo piano di query diventa un po' mentale (molte conversioni bitmap in ID di riga), in tal caso dividi le 2 parti dell'OR in una query UNION ALL.es
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