Verwendung von Präfix-Daten zur Beschleunigung von Abfragen mit DATE-Spalten
Firebird-Freitag-Witz #5 (von https://t.me/firebirdsql)
Wussten Sie, dass Firebird ein spezielles Präfix für symbolische Datumsparameter unterstützt?
Wenn Sie aus irgendeinem Grund eine Bedingung für eine Spalte vom Typ DATE angeben und diese mit einer Zeichenfolgenkonstante vergleichen, können Sie das Präfix date vor dem Parameter angeben, um Firebird mitzuteilen, dass es diesen als Datum behandeln soll.
Dadurch kann die Abfrage um bis zu 25 % schneller werden!
Siehe das Beispiel unten:
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>
Natürlich ist es immer besser, vorbereitete Anweisungen (Prepared Statements) zu verwenden!
Für neue Firebird-Freitag-Witze und Firebird-bezogene Neuigkeiten abonnieren Sie den FirebirdSQL-Telegram-Kanal https://t.me/firebirdsql