pctfree和pctused,initrans,maxtrans,next 

环境:oracle 10g,表格处于自动段空间管理的表空间上.
    
       主题:讨论建表的几个参数,和表格以及文件的增长方式.
       
       一)对于倾向于查询的应用系统而言,或者是倾向于查询的表格,那么pctfree设置为1左右,已经足够了,之所以不这只为0, 是为了以防万一,不过对于某些绝对不可能修改的系统而言,设置为0也是可以的。 
       由于默认的pctfeee是10,所以,如果设置为新值0,或者1,那么可以节省将近10%的空间,而且读盘的速度也会更快一些。例如pctfeee=0,那么原来放在100个extent上的数据,现在只要在90个extent上就可以了.
       例如,创建一个很简单的表格:
        -- Create table
        create table test_space
        (
          Name varchar2(24) not null
        )
        tablespace CRMII
          pctfree 0
          initrans 2
          storage
          (
            initial 64K
            next 1K
            minextents 1
            maxextents unlimited
          );
        -- Add comments to the columns
        comment on column test_space.Name          is '姓名';
      二)由于oracle建议我们使用extent management local segment space managment auto ,所以,我们以后建立表格的时候,注意pctfree即可。所以对于永久表格而言,pctused基本上可以进入历史舞台了, 因为临时表并没有storage参数部分(虽然我相信,oracle会使用类似的参数管理临时表).
    
       三)  作为一个基本的常识,了解initrans还是很有必要的。IniTrans,用于每个块中处理行级锁事务的初始表是1,索引是2,如果同一块有很多行被并发更新等操作时,建议增加该值对于serializable 隔离级,至少设置为3。但是事实上,不适宜去修改默认的值,因为事务需要在块上面写事务条目信息,这意味着,initrans越大,需要消耗的空间越大,时间也越长。
     
      四)maxtrans ,在老版本上是为了控制最大并发事务,但是新版本已经自动这么处理了,如果需要的话也可以设置,这个参数和pctused一样,基本上是可淘汰的

     总结:
     1)   pctfree 很重要,但对于查询系统基本上可以设置为0
    2)   pctused 基本可以淘汰
    3)   initrans  ,很重要,但如果不是特别设置,不要去修改。
    4)   maxtrans ,至少10g以上不用了,属于淘汰行列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值