数据库服务器的内存是1G,ORACLE占用400M左右。客户端在操作数据库时,速度很慢.这样的情况一般都会是什么原因?另外,22日时,对修改了数据库中一张表的扩展空间,修改语句如下:
ALTER TABLE tt.table STORAGE ( MAXEXTENTS UNLIMITED);将表的扩展空间修改成无限制,会影响数据库的速度么?谢谢各位先。

解决方案 »

  1.   

    把SGA分配贴出来,看看400M是怎么分配的。
    如果shared_pool_size分配大量内存,则会导致系统性能整体下降厉害。另外,就是有没有根据系统IO吞吐量来设置db_multi_block_read_count。
    具体的,就是检查会话等待事件,根据具体等待事件优化SQL等。这么简单的描述怎么会有对症的优化方法呢?ALTER TABLE tt.table STORAGE ( MAXEXTENTS UNLIMITED); 
    修改这个,不会对性能有太大的提高。如果扩展区已经分配太多的话,则rebuild表,
    设计好pctfree,以及initial参数,自动increase可以不配的(9i以上版本默认)。
      

  2.   


    --看看系统在等待什么东西:
     SELECT *
       FROM (SELECT EVENT, TOTAL_WAITS
               FROM V$SYSTEM_EVENT S
              ORDER BY TOTAL_WAITS DESC)
      WHERE ROWNUM < 10;
      

  3.   

    查询性能较差的语句 
    SELECT ADDRESS, SQL_TEXT, buffer_gets, executions, buffer_gets/executions AVG 
            FROM v$sqlarea 
            WHERE executions>0 AND buffer_gets > 100000看看是什么原因导致的
      

  4.   

    A窗口执行sql时,
    开另一个B窗口,执行:
    select * from v$session_wait where sid=A窗口的session_id;看看在等待什么还有就是看你的sql执行计划
      

  5.   

    可以通过alter system kill session ‘sid,serial#’来杀掉产生死锁的会话:
     
    SELECT /*+ rule */ s.username, 
    decode(l.type,'TM','TABLE LOCK', 
                  'TX','ROW LOCK', 
                  NULL) LOCK_LEVEL, 
    o.owner,o.object_name,o.object_type, 
    s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser 
    FROM v$session s,v$lock l,dba_objects o 
    WHERE l.sid = s.sid 
    AND l.id1 = o.object_id(+) 
    AND s.username is NOT NULL
      

  6.   

    问题弄清楚了。不是ORACLE的性能问题。谢谢各位先,马上结贴!