表 t_insp_result 中估计有一百万条记录
执行以下语句:
select count(*),sum(VALUES_RMB) from t_insp_result where goods_stat_code = '07030103';速度很慢,请问如何提高?
(已对表中的goods_stat_code字段建立索引)
执行以下语句:
select count(*),sum(VALUES_RMB) from t_insp_result where goods_stat_code = '07030103';速度很慢,请问如何提高?
(已对表中的goods_stat_code字段建立索引)
还是几个字段?
如果是一个字段的话,我觉得你的语句速度一定不慢啊!
是否使用了index.
并且不必建太多的索引.否则不如全表扫描.
建议建这 goods_stat_code ,VALUES_RMB 复合索引.
然后在sqlplus看计划:
sql>set autotrace traceonly;
----------------------------------------------------------
0 recursive calls
0 db block gets
25120 consistent gets
9922 physical reads
0 redo size
630 bytes sent via SQL*Net to client
723 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed要4秒钟啊,
看看有没有解决的方法,在一秒钟之内搞定?
执行计划
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (BY INDEX ROWID) OF 'INSP_RESULT_REGISTER'
3 2 INDEX (RANGE SCAN) OF 'REGISTER_CIQCODE_INDEX' (NON-UN
IQUE)