日期:2014-05-16  浏览次数:20922 次

从一个查询结果中再次查询,结果非常的卡
我是个菜鸟,才学数据库,贴出代码,求大神帮助啊!!!
SELECT count(*) from(
SELECT EVALUATIONINFO.*,SURVEYEVALUATION.EVALUATIONPERSONID,SURVEYEVALUATION.EVALUATIONIP,
SURVEYEVALUATION.REQUESTTIME,SURVEYEVALUATION.FINISHTIME,ROWNUM rn 
from EVALUATIONINFO  join SURVEYEVALUATION
on SURVEYEVALUATION.ID=EVALUATIONINFO.SURVEYEVALUATIONID
where SURVEYEVALUATIONId in
(
SELECT ID from SURVEYEVALUATION where QUESTIONNAIREID='20131216130957'
AND EVALUATIONPERSONID IN(SELECT ID from STU_BASEINFO))  
and TITLENO='3' and rownum<=10


当执行红色的代码的时候速度很快,就0.19S左右,但是如果全部执行的话,需要5分钟左右,求解为什么会这样啊!

------解决方案--------------------
查你的高水位,你的表是否存在过大量数据,后来delete掉了,导致你的全表扫描非常慢。
如果是可以使用导出,删除表,然后导入。
也可以alter table table_name  move tablespace tablespace_name;