Ситуация:
Я пытаюсь написать эффективный запрос, используя инструкцию "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.
Заранее спасибо.