Эта страница переведена машинным переводом. Читайте английский оригинал. English

Библиотека IBSurgeon

Использование префиксной даты для ускорения запросов с колонками DATE

Firebird Friday Joke #5 (из https://t.me/firebirdsql)

Знаете ли вы, что Firebird поддерживает специальный префикс для символьных параметров даты?

Если по какой-то причине вы задаёте условие для столбца типа DATE и сравниваете его со строковой константой, вы можете указать префикс date перед параметром, чтобы сообщить Firebird, что он должен рассматривать его как дату.

В результате запрос может выполняться до 25% быстрее!

Смотрите пример ниже:

Code
SQL> select count(*) from SYNC_DATA where DATE_IN > '01-AUG-2019';

                COUNT
=====================
              3846157

Current memory = 17092054352
Delta memory = 0
Max memory = 17115757856
Elapsed time = 6.339 sec
Buffers = 512000
Reads = 0
Writes = 0
Fetches = 3900383
SQL> select count(*) from SYNC_DATA where DATE_IN > date '01-AUG-2019';

                COUNT
=====================
              3846157

Current memory = 17092054368
Delta memory = 16
Max memory = 17115757856
Elapsed time = 4.933 sec
Buffers = 512000
Reads = 0
Writes = 0
Fetches = 3900383
SQL>

Конечно, лучше всегда использовать подготовленные выражения!

Чтобы получать новые Firebird Friday Jokes и новости о Firebird, подписывайтесь на Telegram-канал FirebirdSQL https://t.me/firebirdsql