状況:私は「LIKE」を使用して効率的なクエリを記述しようとしています改善「%%LIKE」クエリ
文は短い文章で列にテキストの一部世話します。
モデル:
Table 'EVENTSGENERAL' : { ID (KEY), GENERATOR_ (FK), DATETIME, COMPUTERNAME, OSLOGIN, DBLOGIN, INFOTYPE, INFO }
Table 'EVENTSGENERATORS' : { ID (KEY), GENERATOR_ (FK), SHORTNAME, LONGNAME }
Table 'EVENTSINFOTYPES' : { ID (KEY), GENERATOR_ (FK), VERSION_, INFOTYPE, DESCRIPTION }
インデックス:EVENTSGENERAL.GENERATOR
、EVENTSGENERAL.DATETIME
、EVENTSINFOTYPES.INFOTYPE
すべての昇順。
マイクエリ:
SELECT FIRST @first SKIP @skip A.ID,B.LONGNAME, A.DATETIME, A.COMPUTERNAME,A.OSLOGIN, A.DBLOGIN, C.DESCRIPTION, A.INFO
FROM EVENTSGENERAL A JOIN EVENTSGENERATORS B ON B.GENERATOR_ = A.GENERATOR_
JOIN EVENTSINFOTYPES C ON C.GENERATOR_ = A.GENERATOR_ AND C.INFOTYPE = A.INFOTYPE
WHERE C.DESCRIPTION LIKE '%VALUE%'
問題:
このクエリは、余分な大規模なデータベース上で実行されます。私はそれを改善する方法はありますか? 私はFirebirdデータベースを使用しています。
ありがとうございます。
などの他、専門的なソリューション、になっているはずですか?それは速くなるでしょうか? –
LIKE 'VALUE%'を意味する場合は、パフォーマンスの向上のためにVALUEにインデックスを付けることができます。索引を作成してから、「説明計画」と同等のFilebirdを実行することができます。 –
クエリスピードに 'LIKE 'VALUE%'の効果が含まれるように編集されました。 –