Pctfree&pctused&nitrans

1.1      Pctfree&pctused&nitrans

说明:主要是简单介绍关于pctfree&pctused的参数含义。

1.   pctfree

说明:该参数用于指定在数据块内update操作所预留空间的百分比,默认值为10

该参数有效值为0~99,但PCTFREEPCTUSED总和不能超过100.在数据块达到

PCTFREE之前,插入新行和块头扩展都可以使用相应的剩余空间

假定PCTFREE20,那么当剩余空间超过20%时,insert操作可以使用数据块的剩余空间;

当剩余空间低于20%时,insert操作将不能使用该部分空间,这些剩余空间是为update操作保留的

 参数PCTFREE的原则如:

a)使用小的PCTFREE可以提高update性能,如果对象update操作很少,应该使用较小的pctfree

b)使用大的PCTFREE可以提高update性能,如果对象的update操作非常频繁,应该使用较大pctfree

2.   pctused

说明:该参数用于指定将数据块标记为可重用块的已用空间最低百分比,默认值为40.该参数有效值为0~99,但PCTFREEPCTUSED总和不能超过100.当数据块已经达到PCTFREE时,该数据块将不能被插入数据,只能删除数据块的部分数据,并且数据块已用空间低于PCTUSED时,该数据块才能重新插入数据

3.   initrans

说明:INITRANS用于指定初始事务入口个数,设置了该参数后,oracle会在数据块的块头上为每个事务入口预留相应的空间。INITRANS设置越大,数据块的剩余空间越少,当INITRANS预留的空间被用尽之后,oracle会从剩余空间中分配更多的空间,并且这些空间会变为块头空间永久部分

4.   pctfree&pctused&freelist

pctusedpctfree控制数据块是否出现在freelist,pctfree控制数据块中保留用于update的空间,当数据块中的free space小于pctfree设置的空间时,该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将被添加在freelist链表中。

5.   pctfree&pctused设定

说明:PCTFREEPCTUSED的设定

    • PCTFREE

    – Default 10

    – Zero if no UPDATE activity

    PCTFREE = 100 × upd / (average row length)

    • PCTUSED

    – Default 40

    – Set if rows deleted

    PCTUSED = 100 – PCTFREE – 100 × rows × (average row length) / blocksize

upd the average amount added by updates, in bytes

This is determined by subtracting the average row length of intercurrent average row length;

average row length:在运行了analyize命令之后,

                   这个值可以从dba_tables中的avg_row_len列中获得。

    rows the number of rows to be deleted before free list maintenance occurs

你可能感兴趣的:(oracle,数据库,list,insert,扩展)