现在我们的数据库,访问系统对象非常慢,查询其它的倒没有问题。
不知道为什么!介绍一下我们的数据库配置:
---------------------------------------------
服务器: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 请各位高手,帮忙看一下,分析一下,是什么原因呢!多谢了!
不知道为什么!介绍一下我们的数据库配置:
---------------------------------------------
服务器: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,修改参数文件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;系统性能有了很大提高,真搞不清当初未啥设得这么小!