经过检查,慢的原因不是CPU和内存,时间大量地花在读取硬盘数据的上面了。

解决方案 »

  1.   

    输出执行计划报告,分析一下。
    查询是全表扫描、还是利用了索引
    LIKE %A% 比较慢。我觉得主要是I/O问题
    1.你的操作系统是什么呀?从OS方面分析I/O
    RAID3、RAID5适合密集读,RAID1+0适合写密集;
    裸设备据说速度很快;
    减少非oracle的操作;2.oracle本身的I/O
    表和索引放在不同的磁盘分区上;
    数据文件和redo log放在不同的磁盘分区上;
    减少行链接和行迁移;
      

  2.   

    把索引都重建一次~alter index idx_name rebuild;
      

  3.   

    谢谢楼上两位,操作系统是WINDOWS 2003,ORACLE升级前的速度不慢。
      

  4.   

    系统参数optimizer_mode是什么值,把它改为RULE后重新启动数据库试试。
      

  5.   

    init.ora中没有optimizer_mode这个参数啊。
      

  6.   

    在sql plus中用system登录后执行show parameters optimizer_mode,修改用
    alter system set optimizer_mode=RULE scope=SPFILE;
    然后重新启动数据库
      

  7.   

    optimizer_mode=RULE是表示cbo模式吗?还是rbo?
      

  8.   

    执行dbms_utility.analyze_schema(username,'COMPUTE',null,null,'');
    重新生成优化参数
      

  9.   

    large_pool_size = 
    shared_pool_size = 
    这两个参数怎么设置的 你的内存多大?
    还有就是重建索引 我觉得很有可能是导入的时候索引坏掉了
      

  10.   

    估计是索引问题,另外在9I中外连接使用left outer join这样的新语法了