读书人

请教重导数据后表关联查询变慢如何解

发布时间: 2012-12-25 16:18:28 作者: rapoo

请问重导数据后表关联查询变慢,怎么解决?急!
导新导数据后,单表(300万)查询零点几秒,关联一个代码表(60条),变为30秒才出来,语句:
select count(*) from ins_checkresultmain t1 left join bas_checkstation t2 on t1.stationpkid=t2.pkid
where checktime>=to_date('2012-07-23 00:00:00','yyyy-mm-dd hh24:mi:ss')
and checktime<=to_date('2012-07-23 23:00:00','yyyy-mm-dd hh24:mi:ss')
分析:
SELECT STATEMENT, GOAL = CHOOSECost=3Cardinality=1Bytes=27
SORT AGGREGATECardinality=1Bytes=27
NESTED LOOPSCost=3Cardinality=1628Bytes=43956
TABLE ACCESS BY INDEX ROWIDObject owner=GZJDCObject name=INS_CHECKRESULTMAINCost=3Cardinality=1628Bytes=27676
INDEX RANGE SCANObject owner=GZJDCObject name=IDX_INS_CSMAIN_CHKTIMECost=2Cardinality=1628
INDEX UNIQUE SCANObject owner=GZJDCObject name=PK_BAS_CHECKSTATIONCardinality=1Bytes=10
原来导数前好象没有TABLE ACCESS BY INDEX ROWID这个的,直接用了IDX_INS_CSMAIN_CHKTIME索引,麻烦各位帮看一下什么原因,谢谢!
[最优解释]
重建索引 ,对这个导入的表做统计分析
[其他解释]
看一下执行计划和统计信息
贴上来看看
[其他解释]
也做过重建索引和统计分析,用下面语句做的
analyze table ins_checkresultmain compute statistics ;
alter index idx_ins_csmain_carpkid rebuild;
[其他解释]
我们时间用了这个索引
alter index idx_ins_csmain_chktime rebuild ;
[其他解释]
刚测试发现,如果只用时间做条件就会快,如果加多一个条件就会变慢。
[其他解释]
这个慢不是个别表的问题,现在发现是整个库的都一样,多条件或关联表就会慢。

读书人网 >oracle

热点推荐