Oracle上的INTTRANS和MAXTRANS有什么作用?
Oracle上的INTTRANS和MAXTRANS有什么作用?
我来答
添加附件
收藏
复制链接
微信扫码分享

在小程序上查看
分享
添加附件
问题补充
4条回答
默认
最新
Oracle段中的每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。这个事务表的初始大小由对象的INITRANS设置指定(表和索引上的默认值为2)。事务表会根据需要动态扩展,最大达到MAXTRANS个条目。所分配的每个事务条目需要占用首部中的23~24字节的存储空间。注意:对于Oracle Database 10g,MAXTRANS则会被忽略,所有段的MAXTRANS都是255。


打赏 0

这两个参数决定了在分配给这个表的block上初始的并发操作数和最大的并发操作数.
建表时, 指定MINTRANS大小可以在block中预留相应的空间, MAXTRANS参数一般为255, 但在block上并发的trans不一定能达到255个, 原因之一就是因为block上可能会没有足够的空闲空间来分配给新的transition.


打赏 0
initrans 1 --初始化事务槽的个数,maxtrans 255 --最大事务槽的个数
当 BLOCK 上某笔 ROW 被交易更新锁定时,会在 BLOCK header ITL allocate 一个锁,当下一个交易要更新同一笔 row 时,就会发现他已经被先前的交易持有锁了,会先去检查该交易是否 active? 如果是,后来的该笔交易就会被 blocking ,等待 ) 如果一个表格需要同时有大量交易存取,你应该设定 INITRANS 大一点,可以减少 ITL 还要动态扩充的 Overhead


打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
