我有一个拥有超过200万行和200列的oracle数据库。我试图在五列中查询数据,其中一列等于最近的日期。下面的查询有效但似乎需要很长时间(超过2分钟)来处理。我可以使用不同的逻辑来加速查询吗?
SELECT a,b,c,date,e FROM table a WHERE a.date = (SELECT MAX(date) FROM table)
答案 0 :(得分:0)
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)
它会更快,因为在获取最大日期期间,只会通过下降扫描索引,并且您的主查询将通过索引提升工作,您不需要扫描所有表