Не уверен, какую версию SQL вы используете, но есть несколько предположений:
- У вас есть индекс в поле, которое вы ищете
- Вы возвращаете только необходимое поле(как заголовок), а не SELECT *
Я бы посоветовал подумать об уменьшении числа возвращаемых строк в зависимости от размера поискового запроса, например: (псевдокод, не знаюваш диалект SQL)
if len(searchString)<=3
select top 50 title from table order by title
else
select title from table order by title
Поиски меньшего размера, вероятно, будут возвращать гораздо больше строк, но большинство пользователей, скорее всего, наберут несколько букв до того, как прекратят печатать, поэтому для начальных запросов не возвращайтерядов.