关于性能调整,各位大虾帮看看

[复制链接]
查看11 | 回复9 | 2010-5-13 10:04:27 | 显示全部楼层 |阅读模式
一个跑在Windows 2000 server上的Oracle 8.1.7的数据库用于Datawarehouse,感觉IO的压力比较大,做了个STATSPACK,大家帮看看,给点建议,应该怎样调整比较好,硬件: 700*2 CPU+2G RAM
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
30个小时的statpack?太长了吧
重新做一个15到30分钟的吧
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
好,上传了一个2个reports:
report20031123.txt------------1 day
report1449_1519.txt----------30 mins
另外留心到系统当前的配置如下:
db_block_lru_latches = 1
disk_asynch_io = TRUE
dbwr_io_slaves = 0
db_writer_processes = 1
lock_sga = false
这些似乎是影响IO的一些参数,有没有必要调整一下?下面是我的打算,请问和不合理?当前的系统配置是700 * 2 CPU + 2G RAM
db_block_lru_latches = 2
disk_asynch_io = TRUE
dbwr_io_slaves = 4
db_writer_processes = 2
lock_sga = true
谢谢
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
另外,db_block_buffers也比较低,打算加大到90000(700M)
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
自己up一下,看看哪位大虾能给点意见
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
sort_area_size竟然设置成629145600,600M啊,ft,你机器不慢才怪呢,总共才2G的ram,现在估计都是狂用swap区了,当然IO高了,先修改到6291456看看吧
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
我想是不是先从等待事件入手。(db file scattered read和db file sequential read )
在系统繁忙性能不好时查询 v$session 和v$session_wait找到当前处于等待状态的连接会话的事件列表。(反复多次查询)。
查询dba_extents,利用session_wait中处于等待的会话的p1,p2,p3列的值找到这些会话访问的对象。
通过v$sqltext,v$session找到它们执行了什么sql语句。
仔细研究找到的sql语句。也许可以优化,减少i/o操作。
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
刚看到coolyl的帖子,sort_area_size的值真的是太高了。:)
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
粗略看了一下
RBS NoSegment SizeAvg ActiveOptimal SizeMaximum Size
------ --------------- --------------- --------------- ---------------
0 401,408 8,19220,971,520 401,408
1221,086,20821,787,01120,971,520 143,433,728
1321,086,208 7,000,46820,971,520 143,433,728
1421,086,20839,166,63720,971,520 147,652,608
1521,086,208 4,222,57920,971,520 130,777,088
1621,086,20831,696,34220,971,520 143,433,728
1721,086,208 4,346,45220,971,520 151,871,488

回滚段 Optimal Size 参数的值应该大于Avg Active
BufferHit %: 71.59太低,要加大data buffer最好达到90%以上
share pool 居然只有30m, 奇怪的是命中率还挺高,是不是平常的操作很单一啊,不管如何也该设为150+
log_buffer
32768改为256k
job_queue_processes 6 改为 4
enqueue avg wait 279 证明表建的不合理,常见是外键未加索引,或者extent设置太小
sort_area_size629145600 夸张了,基本就不用tmp表空间,占用太多物理内存
根据你的应用是在nt下,我想数据量应该不会很大,但是I/O确这么严重,而且主要查询,但是indx和data读取比例却不到1%,请检查你的索引是否建的好,如果索引建得好data buffer也不用设置太高
DATA_L01 Reads 6,077,074
INDX_L01 Reads43,800
回复

使用道具 举报

千问 | 2010-5-13 10:04:27 | 显示全部楼层
先谢谢各位大虾。
这东东主要用作DW,平时的数据更新基本上是1次/小时,而且都是ETL动态生成SQL做的,所以没有用太大的share pool,反倒是生成一些Report and cube的查询量比较大,所以用了很大的sort_area_size,就是希望不要disk sort,但是不知道多大合适,STATSPACK有些参数看不懂,那位大虾能够提示一下能不能从STATSPACK里找到相关信息评估一下这个值多大合适,还有Buffer Hit %确实低了点,现在8000*8=640M,大概调到多大会比较合适?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行