如何提高sql查询性能?

时间:2015-10-19 14:02:21

标签: sql performance oracle11g

SELECT Round(( Cast(sysdate AS DATE) - Cast(actual_end_time AS DATE) ) * 24 * 60 
       ) AS diff_minutes 
FROM   table1 
WHERE  task_name = "running" 
ORDER  BY actual_end_time DESC 

我们在列task_name

上有一个索引

是否还有其他选项可以改进此查询?

1 个答案:

答案 0 :(得分:3)

对于您的查询,您需要table1(task_name, actual_end_time)上的复合索引(请注意索引中列的顺序很重要)。这是查询的覆盖索引,并且满足whereorder by子句。