我有一个查询,从表格中选择超过72天的记录。
SELECT id FROM TABLE_NAME WHERE TIMESTAMP <= SYSDATE - INTERVAL '72' HOUR;
此查询的性能非常糟糕,因此我在TIMESTAMP列中添加了一个索引。
这适用于千个记录,但当记录数 1000万(有时甚至更多)时,我几乎看不到索引的任何性能提升。
我的猜测是算术运算会破坏查询的性能。
请告诉我是否有其他方法可以加快此查询速度。
答案 0 :(得分:2)
假设timestamp列属于TIMESTAMP
类型,问题是从DATE
(由SYSDATE
返回)到TIMESTAMP
的隐式转换会导致索引。
您可以添加基于函数的索引,也可以将SYSDATE
的使用更改为SYSTIMESTAMP
。