Oracle数据库运行一段时间后 响应特别慢 大家看看是什么原因导致的 向大家讨些经验 谢了

解决方案 »

  1.   

    响应特别慢 ?
    哪方面的慢?
    应用层SQL查询变慢?
    数据库整体状况是什么样子的?
    还是指DBA的各种数据库操作都慢?
      

  2.   

    你的oracle 是装在Windows下还是Linux下?
    要先确定系统中是否出现了什么异常的程序或是否有病毒如果上面两种情况排除,则监控Oracle用户的进程
    查找是否有进程占系统资源比较大如果你对数据库的操作,数据量较大,
    数据库可能会一直没有释放这个数据库的会话,
    导致运行SQL语句的进程一直占用系统的资源,从而影响了整个数据库的性能。
      

  3.   

    这个最好还是实地看下,不过你可以ps -ef 看看哪些进程占CPU过多;内存是不是小了或者分配不合理导致一断时间后变慢 ;你oracle的同时使用人数会很多吗? 如果是因为一些SQL性能不好导致的,可以通过statpack查出来,然后做SQL调优。
      

  4.   

    因为是客户机那边出了问题 所以我能做的 也只能去总结些出问题的原因 发给客户 比较头疼!多谢楼上两位  对数据库操作的不多 只是简单的操作  sql语句也不复杂!客户说的 就是数据库 运行一段时间就慢了... 
      

  5.   

    查询select event from v$session_wait;看看有什么等待事件,系统慢肯定是有原因的,一般就是由于不良的SQL语句引起的
      

  6.   

    是什么环境,使用各自系统的查看进程的命令
    如linux的top,aix的topas查看一下各进程的CPU占用情况,是否有进程占用CPU过高
    如果有,则可以使用如下SQL查看一下最消耗CPU的语句
    SELECT /*+ ORDERED */
    sql_text
    FROM v$sqltext a
    WHERE (a.hash_value, a.address) IN (
    SELECT DECODE (sql_hash_value,
    0, prev_hash_value,
    sql_hash_value
    ),
    DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
    FROM v$session b
    WHERE b.paddr = (SELECT addr
    FROM v$process c
    WHERE c.spid = '&pid'))
    ORDER BY piece ASC
    或者生成一个statspack报告,这样问题就更清楚
      

  7.   

    Oracle数据库运行一段时间后 响应特别慢..
        看下这期间是不是有大量的DML操作,而占用的undo回滚段没有回收!
      

  8.   


    1. 看下数据库服务器CPU 和内存的使用情况
        如果服务器硬件性能不差, 但是CPU,内存使用率较高, 就检查下SQL, 肯能是SQL 效率低造成。
        如果说硬件跟不上,那也没办法了。2. 用AWR 或者statspack 分析下数据库。 看下有什么瓶颈, Top 5 event,top 5 sql。 看下还有什么地方需要优化的,如果SQL, SGA 等。3. 看下前台应用连接数据库后有没有释放session。 这个也要关注下。