请问oracle表空间下面几个参数是什么呢意思啊,谢谢

tablespaceCS_BUSIpctfree10initrans2maxtrans255... tablespace CS_BUSI
pctfree 10
initrans 2
maxtrans 255
展开
 我来答
大衍之49
推荐于2018-04-11 · TA获得超过1049个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:1072万
展开全部
pctfree 块中保留用于UPDATE操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此块 中;

每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。这个事务表的初始大小由对象的INITRANS 设置指定。对于表,这个值默认为2(索引的INITRANS 也默认为2)。事务表会根据需要动态扩展,最大达到MAXTRANS 个条目(假设块上有足够的自由空间)。所分配的每个事务条目需要占用块首部中的23~24 字节的存储空间。注意,对于Oracle 10g,MAXTRANS 则会忽略,所有段的MAXTRANS 都是255。

也就是说,如果某个事物锁定了这个块的数据,则会在这个地方记录事务的标识,当然那个事务要先看一下这个地方是不是已经有人占用了,如果有,则去看看那个事务是否为活动状态。如果不活动,比如已经提交或者回滚,则可以覆盖这个地方。如果活动,则需要等待(闩的作用)

所以,如果有大量的并发访问使用的这个块,则参数不能太小,否则资源竞争将导致系统并发性能下降。

测试了一下ORACLE 并发事务的时候的块分配和ITL 管理,
略去大部分的测试过程,大概的结果小结如下:
1. INITRANS =1 时 并发多个INSERT 事务(本次测试最多5个)的时候并不会由于ITL的争用而等待组塞,ORACLE 采取的策略是每个INSERT事物分配不同的一些块来使用,这样各个会话之间就不会产生冲突,除非段没有多余的块(次种情况与本次的主题无关).

2.INITRANS =1 时并发多个UPDATE事务(本次测试最多7个)的时候也不会由于ITL的争用而导致等待产生,此时ORACLE除了使用默认的ITL之外,另外动态扩展所需要的ITL,紧紧在非常极端的情况下才会出现等待,(当然应用层面的死锁或等待与本主题无关)。
1) 该BLOCK没有FREE空间了,注意FREE参数的设置不能太小。
2) 该块使用的ITL总数,超过该块允许的ITL的最大值min(round(block_size*0.5/24) - 2 ,255) 。
要达到这样的极端情况实际的生产情况是很难的,应该比业务SQL的死锁出现的概率更小。
zbf15879742210
2010-09-24
知道答主
回答量:22
采纳率:0%
帮助的人:19.7万
展开全部
第一个参数pctfree是数据块的可用空间的百分比。
可以这样认为:数据块一般由块头、表目录、行目录、可用空间以及数据构成

前3项就是固定的管理开销,记录着数据块的基本信息,一定存在的。剩下的就是可用空间跟你是数据了,当你插入数据很多,你的可用空间当然小啦。

后面2个都是跟事务有关的参数,initrans指的是初始化的事务数量,后面那个理所当然是最大事务的数量了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcd20100501
2010-09-19 · TA获得超过207个赞
知道答主
回答量:148
采纳率:0%
帮助的人:153万
展开全部
pctfree 用于控制数据块中空闲空间
initrans 用于控制访问数据块的事务数量,也会影响数据块头部空间的使用情况
maxtrans用于决定数据块的事务总数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式