oracle插入性能优化,insert速度十分缓慢,索引维护浪费大量时间,如何优化?

现在我怀疑在两种情况:

1。索引维护耗费的时间太长是因 为该索引创建不合理,这个表有60G,1亿行以上,大部分为insert 和update。该表分区的时候以partition_id这个字段分区,而索引创建在user_no上,而且创建索引用的local。

昨天晚上我将该索引按照user_no进行global分区重新创建,速度没有明显提高,基本没有什么影响。

索引的块大小在这里也没有得到明显的改观,也就是块大小在这种情况下不会对性能有多大的影响,因为update的速度很快,而单单只有insert速度很慢。

然后我drop掉这个索引后,速度飞速发展,insert和update速度均提高10倍以上。

2。后来有一个朋友跟我一起分析了一下10046的trace文件,贴一段给大家看看:

WAIT #4: nam='global cache open x' ela= 267 p1=138 p2=30311 p3=504403161335454208

WAIT #4: nam='global cache open x' ela= 23 p1=138 p2=30311 p3=504403161335454208

WAIT #4: nam='db file sequential read' ela= 14451 p1=138 p2=30311 p3=1

WAIT #4: nam='global cache open x' ela= 278 p1=143 p2=26994 p3=504403159137516512

WAIT #4: nam='global cache open x' ela= 19 p1=143 p2=26994 p3=504403159137516512

WAIT #4: nam='db file sequential read' ela= 7367 p1=143 p2=26994 p3=1

WAIT #4: nam='global cache open x' ela= 399 p1=144 p2=24777 p3=504403163617368128

WAIT #4: nam='global cache open x' ela= 19 p1=144 p2=24777 p3=504403163617368128

WAIT #4: nam='db file sequential read' ela= 29085 p1=144 p2=24777 p3=1

WAIT #4: nam='global cache open x' ela= 309 p1=144 p2=24782 p3=504403163717793248

WAIT #4: nam='global cache open x' ela= 20 p1=144 p2=24782 p3=504403163717793248

WAIT #4: nam='db file sequential read' ela= 1153 p1=144 p2=24782 p3=1

WAIT #4: nam='db file sequential read' ela= 15868 p1=145 p2=14881 p3=1

同时我在rac的另外一个机器上查询了gv$cache_transfer这个视图,发现大量的cache transfer刚好发生在这些文件上。根据trace文件中分析,每一个'db file sequential read' 前面都跟了一个'global cache open x' 并且p1(file#)参数都一样,几乎这两个等待都是发生在一起的,因此我又怀疑是否因为这个表的resource master根本就是在另外一个机器上(node2),而我的应该做的事情在本地这台机器上(node1),每一次需要修改索引的时候都需要gcs把索引块从node2上传输过来?

在网上看了一些帖子,在oracle9202以后,rac的资源动态分配就不能用了,而且据chao_pin和oraracdba的谈话中可以看出,rac的resource remaster功能要在10g中才能很好的使用,也就是这个问题在9i中根本不能解决?

目前我能做的就是要么将应用移到node2上去做,减少'global cache open x' 用以减少interconnect的传输block,或者现在我将分区索引分的更细?

各位有没有好的办法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值