如何优化海量数据的查询速度啊(有SQL语句)?
fanjb 2010-04-21 03:54:56 /*
Oracle 9i,下边的查询(一天的数据)需要1分半到2分钟,太慢了,有何办法优化吗?
1、介绍:表cdr_table,大概有2~3亿条记录,记录按日期分区(每个小时一个分区表),cg_nbr、loss_reason上各自建有nonunique索引。
2、观察执行计划,发现用的是表访问(Table Access Full)。即使手工指定索引,即/*+index()*/,但不起作用,oracle似乎只认表访问。
*/
SELECT cg_nbr, COUNT (*),
COUNT (DECODE (loss_reason,
0, 1,
1, 1,
NULL
)
)
FROM cdr_table
WHERE start_time >= TO_DATE ('2010042000', 'yyyymmddhh24')
AND start_time <TO_DATE ('2010042100', 'yyyymmddhh24')
GROUP BY cg_nbr
HAVING COUNT (*) >= 900
AND COUNT (DECODE (loss_reason,
0, 1,
1, 1,
NULL
)
) / COUNT (*) <= 0.95