Usando prefixo de data para acelerar consultas com colunas DATE
Piada de Sexta-Feira do Firebird #5 (de https://t.me/firebirdsql)
Você sabia que o Firebird suporta um prefixo especial para parâmetros de data simbólicos?
Se por algum motivo você estiver especificando uma condição para a coluna do tipo DATE e comparando-a com uma constante de string, você pode especificar o prefixo date antes do parâmetro, para informar ao Firebird que ele deve considerá-lo como uma data.
Como resultado, a consulta pode ficar até 25% mais rápida!
Veja o exemplo abaixo:
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>
Claro, é sempre melhor usar statements preparados!
Para novas Piadas de Sexta-Feira do Firebird e notícias relacionadas ao Firebird, assine o telegram do FirebirdSQL https://t.me/firebirdsql