此页面为机器翻译。请阅读英文原文。 English

IBSurgeon 文库

使用前缀日期来加速包含DATE列的查询

Firebird 周五笑话 #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 周五笑话及 Firebird 相关新闻,请订阅 FirebirdSQL 电报频道 https://t.me/firebirdsql