如何避免日期之间的全表扫描查询

时间:2014-02-25 07:18:31

标签: sql performance oracle

我正在编写一个存储过程,以便将来自task_history表的汇总值插入到task_activity_report表中。

Task_history
----------------------------------------
Task_id                    Varchar2(32) PK
Event_dt                   Date
Event                      Varchar2(10)
......
......
......

SQL查询:

SELECT task_id 
FROM   task_history 
WHERE  event = 'CLOSED' 
       AND event_dt BETWEEN 10 - nov - 13 AND 20 - nov - 13; 

日期之间正在进行全表扫描,如何避免日期之间的全表扫描查询? 从task_history中选择task_id,其中event_dt介于10-NOV-13和20-NOV-13之间;

我的表有1500万条记录

感谢您的帮助和时间。很多被挪用的。

CVSR Sarma

1 个答案:

答案 0 :(得分:3)

在'event_dt'-column上创建索引。

<强>更新

我不知道你的查询计划和直方图,但可能是'event'字段的索引也是有用的。