加大缓冲池大小,或者表空间大小试一下

解决方案 »

  1.   

    1、建索引
    2、可以用数据库的跟踪器查看查询时瓶颈在哪个表上,然后优化索引。
    3、尽量少用关联
    4、尽量把这段逻辑写道一个存储过程里。
      

  2.   

    同意 CoolAbu(阿卜-Never Stop(★★★★)) 
    还有就是 你也可以从你的SQL语句本身入手:
       在写SQL语句的时候我们尽量避免多表的关联查询,因为关系数据在处理多表的关联查询的时候是对表求广义笛卡儿集,假如有三个表每个表的记录都是10万以上 如果你SQL语句写成这样
    select * from t1,t1,t3 where + 你的条件  
    那么在执行过程中数据库在求广义笛卡儿集时,会生成100000*100000*100000条的临时记录,然后才会根据后面的WHERE条件来选择
       所以我们应该是数据库避免这样求广义笛卡儿集,而是数据库选择记录后在求广义笛卡儿集,这样速度会成指数被的提高
       比如上面那个例子可写成嵌套试SQL:select * form t1 where in (select * from t2 where in (select * from t3)) and 条件
    这样写后假如每个表符合条件的记录为1000 那么结果广义笛卡儿集中生成的记录将大大减少