更快的SQL数据库查询

时间:2017-02-15 19:23:08

标签: sql oracle

我有一个拥有超过200万行和200列的oracle数据库。我试图在五列中查询数据,其中一列等于最近的日期。下面的查询有效但似乎需要很长时间(超过2分钟)来处理。我可以使用不同的逻辑来加速查询吗?

SELECT a,b,c,date,e FROM table a WHERE a.date = (SELECT MAX(date) FROM table)

3 个答案:

答案 0 :(得分:0)

尝试rownum

SELECT * FROM (
SELECT A,B,C,DATE,E FROM TABLE A WHERE A.DATE   DESC
)
WHERE ROWNUM=1

答案 1 :(得分:0)

您也可以使用其他类似的解决方案

/etc/gitconfig

答案 2 :(得分:0)

是的!!!

设置索引"日期"在I_TABLE_DATE之前将您的查询更改为此

SELECT --+ index_desc(a I_TABLE_DATE)
    a,b,c,date,e 
FROM table a 
WHERE a.date = (SELECT --+ index_desc(b I_TABLE_DATE)
                b.Date
                FROM table b
                where Rownum = 1)

它会更快,因为在获取最大日期期间,只会通过下降扫描索引,并且您的主查询将通过索引提升工作,您不需要扫描所有表