このクエリを頻繁に実行しており、最適化したいと考えています。
select
number || ' ' || name
from tasks
where upper(number || ' ' || name) like '%VALUE%'
インデックスを作成しましたが、インデックスがない場合と同じくらい時間がかかりました
create index name on tasks (upper(number || ' ' || name))
他にオプションはありますか?
このクエリを頻繁に実行しており、最適化したいと考えています。
select
number || ' ' || name
from tasks
where upper(number || ' ' || name) like '%VALUE%'
インデックスを作成しましたが、インデックスがない場合と同じくらい時間がかかりました
create index name on tasks (upper(number || ' ' || name))
他にオプションはありますか?
条件がインデックスの使用を正当化するのに十分なほど選択的であると確信している場合は、次のようにインデックスの高速フル スキャンを促進してみてください。
select /*+ INDEX_FFS(tasks your_index_name) */
number || ' ' || name
from tasks
where upper(number || ' ' || name) like '%VALUE%'
編集:
私は、IFFS を推進する別の方法が次のようなものであることを思い出すようです。
select number || ' ' || name
from tasks
where rowid in (
select rowid
from tasks
where upper(number || ' ' || name) like '%VALUE%')
驚くべきことに、前者の方法よりも効率がほとんど低下しません。