|
原帖由 yaguo_96 于 2008-5-24 21:27 发表 ![]()
你好我是这样做的:
alter system dump undo header '_SYSSMU1$';
导出结果在附件显示0x2f 个事务项。这是不是代表这个回滚段最多只能支持这么多事务。这个值可以设置吗?532059
According to
http://freelists.spaces.live.com ... 5B281E6B4!177.entry
chd means "commit head". So it's different from the number of transaction slots in the segment. In your case it just happens to be the same as the last slot number (the bottom index) but it may well be different.
Now the question becomes, Does the last index i.e. slot number 0x2f mean we can only have 48 (2F in hex) concurrent transactions in this undo segment? Metalink thread 177926.999 says (as many other documents) that the max number of concurrent transactions one segment can support is determined by db_block_size. If you dump all your undo headers (or simply select max(KTUXESLT), KTUXEUSN from x$ktuxe group by KTUXEUSN order by 2), you'll see your system undo segment (USN=0) has max slot# 97 and so can support 98 slots (index starts with 0) if your db_block_size is 8k. I didn't do a test. But suppose you have 48 sessions all set to use the same undo segment and all do a transaction each, and then you open another session doing a transaction, I think it still works and will not wait. Test it and let us know.
To use a specific undo segment in AUM, do something like this on a test box:
alter system set "_smu_debug_mode" = 45 scope = memory;
set transaction use rollback segment "_SYSSMU1$";
Yong Huang |
|