Использование префиксной даты для ускорения запросов с колонками DATE
Firebird Friday Joke #5 (из https://t.me/firebirdsql)
Знаете ли вы, что Firebird поддерживает специальный префикс для символьных параметров даты?
Если по какой-то причине вы задаёте условие для столбца типа DATE и сравниваете его со строковой константой, вы можете указать префикс date перед параметром, чтобы сообщить Firebird, что он должен рассматривать его как дату.
В результате запрос может выполняться до 25% быстрее!
Смотрите пример ниже:
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