oracle狂慢winserver2000,表空间就2个DF,硬盘做过raid的,机器IBM的服务器,内存3G,4处理器,数据库数量最大的表也不过万条.但是查询非常慢,300条就已经不行了,用PLSQL查询时就是服务器上的PLSQL查,也要几秒时间即使是按主键精确定位.请大家帮忙看看问题,关系到饭碗!谢谢大家

解决方案 »

  1.   

    数据量那么小,不应该太慢的。每个表都这样,还是只有个别表?以后你在删除表中数据的时候尽量用truncate而不要用delete,因为delete会产生大量的日志。
    你现在可以选择一个表,通过create table temp_table as select * from 表名,创建一个临时表,然后再查询看看是否还那么慢。
    临时表空间太大的话,可以清一下。
      

  2.   

    每个表都慢,每次都用truncate,我们的两个数据文件没有指向临时表空间的,索引单独为一个表空间,索引会不会有问题,请大家给点方案吧
      

  3.   

    1、看下是不是表空间满了
    2、看下top,是oracle耗资源还是其他应用影响,再定位
    3、查看oracle日志,看有无异常
      

  4.   

    等待事件主要是什么?看你的情况,估计很大可能是IO出了问题,检查硬盘的硬件有没有问题?raid是不是正常?电源是不是正常?
      

  5.   

    是某个表慢?还是所有表都慢?hwm?
      

  6.   

    数据量很小啊。这么高的配置,即使不改系统参数,也不会这么慢。
    NinGoo(心远地自偏 http://NinGoo.itpub.net)  分析的有些道理,看看os的io
    看看cpu等的性能
      

  7.   

    vmstat查pi,po有无数值,如果有,就是内存不断交换导致系统慢,要重调oracle内存分配等
      

  8.   

    1.查看CPU,内存使用情况,(有可能中毒)
    2.看看你的INIT.ORA设置是不是不合理
    3.查看表空间是不是已满
      

  9.   

    300条就不行了 ,这个一般来说也不可能啊。
    你看看计划,  
    还有是看看alert日志有没有什么异常, 还有是  看看机器的负载状态(任务管理器也是可以的)
    看看事务等待等信息
      

  10.   

    1,找一条慢的sql,看看执行计划
    2,分析一下表和索引
      

  11.   

    1、重启数据库试试
    2、开一个回话做一次查询,然后跟踪此回话,看看是不是sql导致整个数据库性能降低
    3、看看服务器是否还有其他应用暂用了大量的CPU和内存。