数据库是:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
有打开archivelog
从上星期开始,每天早上就有人反应说速度很慢,重启服务器就好了,但第二天又是一样,又需要重启.一直没有找到原因,CPU使用率在10%左右,用户数大概只有500左右.每天大概会有4万的数据量.
常用两张表,一张数据量78万多,另一张422万多,都有设置索引,且每天都有备份到另外的表.请问各位有没有遇到这种问题?大概原因出现在什么地方?
有没有什么解决方法?或者有没有什么工具可以用来分析原因?
谢谢各位了!!!

解决方案 »

  1.   

    估计是遇到了什么瓶颈  用etl工具跟踪分析下呢
      

  2.   

    可能是,不理解的是重启服务器后又恢复正常.
    如何查看异常情况下正确执行或影响的程序或语句呢?机器的配置是没问题的,HP服务器,16核CPU,16G内存,Windows Server 2003R2
      

  3.   

    使用oracle 性能检测工具进行检查下呢。
    比如过statspack.
      

  4.   

    oracle 的console 的页面好像有做性能分析的,可以看看。有对一些性能差的因素做出提示,同时有的有解决方案。
      

  5.   

    我的服务前几天就是。   根据em的提示,对sga_target 还有session数等参数做出了调整。
    结果最后找到原因,居然是数据连接没有释放。。
      

  6.   

    谢谢各位的帮助,我又找了几天的原因,还是没有找到,EM中也没有什么特别的情况,Log中也没有异常.我在想,会不会是同是上线人数过多也会导致网络阻塞.因为这种现象都发生在早上,使用者同时上线的时候,大概会有300个使用者同一时间上线查询,然后很慢,但只要重启服务器,又恢复正常.
      

  7.   

    你确定alert日志中没有任何报错吗
      

  8.   

    以下是配置,請問這樣有問題嗎?  processes                = 800
      sessions                 = 885
      __shared_pool_size       = 130023424
      __large_pool_size        = 4194304
      __java_pool_size         = 4194304
      __streams_pool_size      = 0
      spfile                   = E:\ORACLE\PRODUCT\10.2.0\DB_2\DBS\SPFILEORCL.ORA
      sga_target               = 612368384
      control_files            = E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL, E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL, E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
      db_block_size            = 8192
      __db_cache_size          = 465567744
      compatible               = 10.2.0.1.0
      log_archive_start        = TRUE
      log_archive_dest_1       = location=E:\oracle\arch mandatory reopen=600
      db_file_multiblock_read_count= 16
      db_recovery_file_dest    = E:\oracle\product\10.2.0/flash_recovery_area
      db_recovery_file_dest_size= 2147483648
      undo_management          = AUTO
      undo_tablespace          = UNDOTBS1
      remote_login_passwordfile= EXCLUSIVE
      db_domain                = 
      dispatchers              = (PROTOCOL=TCP) (SERVICE=orclXDB)
      job_queue_processes      = 10
      audit_file_dest          = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\ADUMP
      background_dump_dest     = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\BDUMP
      user_dump_dest           = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP
      max_dump_file_size       = 1024m
      core_dump_dest           = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\CDUMP
      db_name                  = orcl
      open_cursors             = 1000
      pga_aggregate_target     = 203423744
      

  9.   

    要找出到底是数据库慢,还是应用慢?
    如果库慢,那么做ash,awr,stackpack都可以看出来top event,和top sql。根据提示对症下药
      

  10.   

    什么应用,开了800个process?记得windows下开那么多貌似有bug.自己查查metalink吧
      

  11.   

    从你表述的情况来看,应该不是硬件瓶颈造成的,也不是数据库的内存参数设置造成的,我判断是由于发生几个会话发生资源争用锁死造成的,这个情况可以从AWR的报告上看出来,也可以用select  * from  v$session_wait查看等待事件看出来。至于你重启速度快了,那是因为重启后把锁死的资源又释放了。但不久业务一操作,又发生了争用,就又慢了。看一下等待事件是什么,有什么锁,TOP SQL是什么,操作的是那几张表就可以查到原因