Я часто использую этот запрос, и я бы хотел его оптимизировать.Оптимизация запросов и конкатенация
select
number || ' ' || name
from tasks
where upper(number || ' ' || name) like '%VALUE%'
Я создал индекс, но он принял такое же время, как и без индекса
create index name on tasks (upper(number || ' ' || name))
Есть ли другие варианты?
Проверили ли вы план запроса? Является ли индекс даже использованным? – mustaccio
Индекс не используется – user49126
Индекс не будет использоваться, потому что у вас есть процент до VALUE, вы заставляете полностью сканировать, и вы не можете с этим справиться. Почему вы все равно объединяете вещи? Какие значения будут иметь значение VALUE, и вы получите его конкатенирование? Почему вы ищете VALUE в любом месте строки? – Ben