扩大
缩小

管理数据块空间——块空间参数

数据块也称oracle块,他是oracle在数据文件上执行i/o操作的最小单位。

通过块参数可以控制数据块的剩余空间,可以降低数据块的访问冲突。其中,pctfree和pctused用于控制数据块的剩余空间,使用这两个选项可以提高读写数据的性能,降低数据块的未用空间,降低行迁移个数。initrans用于确保更新的数据块的最小并发事务个数,使用该参数可以降低并发访问冲突。

1.pctfree

该选项用于指定在数据块内为updae操作所预留空间的百分比,默认值为10.当设置该选项时,其有效值为0~99,但pctfree和pctueed总和不应该超过100.在数据块达到pctree之前,掺入新行和块头扩展都可以使用相应的剩余空间。

假定pctfree为20,那么当数据块空闲空间超过20%时,insert操作可以使用这些空闲空间;当空闲空间低于20%时,insert操作将不能使用这些空间,这些空闲空间是为update操作保留的。pctfree设置原则:

使用小的pctfree可以节省空间。如果对象的update操作很少,那么应该使用较小的pctfree。

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

2.pctused

该选项用于指定将数据块标记为可重用块的已用空间最低百分比,默认为40。当设置该选项时,其有效值为0~99,但pctfree和pctfree总和不应该超过100.当数据块已经达到pctfree时,该数据块不能被插入数据,只有在删除了数据块的部分数据,并且数据块已用空间低于pctused时,该数据块才能重新插入数据。

假定pctused为40,并且数据块在达到pctfree之后已经删除了部分数据,但因为数据块已用空间依然高于pctused,所以该数据块依然不能被插入数据。只有在已用空间低于40%时,该数据块才能被重新插入数据。设置较小的pcrused可以降低update和delete的处理开销,但会增加数据的未用空间;设置较大的pctfree可以提高空间利用,但会增加insert和update的处理开销。

3.initrans

initrans 用于指定初始化事务入口的个数。当设置了该选项之后,oracle会在数据块的块头上为每个事务入口预留相应的空间。

注意:initrans设置的越大,数据块的空闲空间就会越少。当initrans所预留的空间被用尽之后,oracle会从空闲空间中分配更多的空间,并且这些空间会变成块头空间的永久部分。


 

 

 

posted on 2013-05-26 21:10  LinuxPanda  阅读(512)  评论(0编辑  收藏  举报

导航