现在我们的数据库,访问系统对象非常慢,查询其它的倒没有问题。
不知道为什么!介绍一下我们的数据库配置: 
---------------------------------------------
服务器:3.16G双核,4G内存,584G硬盘(Rid5,有硬Rid卡) 
数据库:oracle8.16 
日常会话:230个左右 
数据文件:195 
数据文件大小:50G左右 
表空间:34(索引和数据分开建的表空间,但在同一个驱动器上) 
最大占用率:79%(不算回滚表空间,回滚表空间只有3个,各256M,有一个占用率为83%) 
shared_pool_size=50M 
db_writer_processes=1 
---------------------------------------------
3/18 用户反应系统越来越慢,考虑到常用的一张表比较大,有2800万条记录,
3/21 做程序将大表中的1400万,备份到了新表中,源表中删除,但表空间没有收缩(没有找到方法),但系统仍然很慢,(这时候访问系统对象还正常。)3/25 由于系统越来越慢,所以重建了所有的索引:ALTER INDEX PK_ENJBTR03 REBUILD NOLOGGING TABLESPACE BKENIDX01; 
   对有的表空间运行了以下语句:alter tablespace 表空间 coalesce; 3/26 上述操作后,用户反映速度快了许多。但奇怪的时,我们访问系统对象时,却慢了太多。
例如:我们用以下语句查询表空间占用情况时,速度奇慢,比平时还要慢很多,每次都要1200多秒,即使在服务品端也要977秒!实在奇怪。 大家帮忙看一下,分析一下,是什么原因呢!相关的帖子:http://topic.csdn.net/u/20090324/15/0149e7e2-49aa-4dcd-b424-2eb9171d0a4f.html (是我询问收缩表空间的帖子,还未结)查询表空间的SQL语句:SELECT
    A.TABLESPACE_NAME as TABLESPACE,
    ROUND(SUM(A.TOTAL1)/1024/1024, 1) as  "Allocate(MB)",
    ROUND((SUM(A.TOTAL1)-SUM(A.SUM1))/1024/1024,1) as  "Used(MB)",
    ROUND(SUM(A.SUM1)/1024/1024,1) as "Free(MB)",
    100-ROUND((SUM(A.SUM1)/SUM(A.TOTAL1)*100),1) as "(%)",
    ROUND(SUM(A.MAXB)/1024/1024,1) as "Max Size",
    MAX(A.CNT) as "Fragment"
 FROM (
      SELECT
          TABLESPACE_NAME,
          0 as TOTAL1,
          SUM(BYTES) as SUM1,
          MAX(BYTES) as MAXB,
          COUNT(BYTES) as CNT
        FROM DBA_FREE_SPACE
        GROUP BY TABLESPACE_NAME
      UNION
      SELECT
         TABLESPACE_NAME,
         SUM(BYTES) as TOTAL1,
         0,
         0,
         0
         FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME
   ) A
 GROUP BY A.TABLESPACE_NAME   请各位高手,帮忙看一下,分析一下,是什么原因呢!多谢了!

解决方案 »

  1.   

    是否有人分析个整个database?我的意思是说,有没有人使用dbms_stats收集了整个库的统计信息?
      

  2.   

    LZ做个statspack贴出来。还有你8i的版本,只有在系统不繁忙是用alter table x move降低hwm,然后rebuild index,再收集统计信息 。注意move会阻塞dml
      

  3.   

    不好意思,这段时间比较忙,没有来得及回复已经解决了,修改如下:
    1,修改参数文件iniths01.ora:
    db_block_buffers = 131072B=128K)(原:550B)
    shared_pool_size = 536870912B=512M)(原:50000000B)
    sort_area_size = 524288B=512K(原:65536B=64K)
    修改后数据高速缓存为(131072*2048)=256M;SGA>256M+512M,实际监控约为811M
    2,修改回滚表空间数据文件RBS01~03.ora,尺寸由256M增加为512M;
    3,修改系统表空间数据文件system01.ora,尺寸由128M增加为256M;系统性能有了很大提高,真搞不清当初未啥设得这么小!