一、设置Pctused以提高空间利用率。
当空间的使用比率达到Pctfree参数所设置的值时,将不能够在这个块上再进行插入操作。但是,用户通过删除数据等操作,可以释放这个块中所占用的空间,从而把这个使用率降低。现在就遇到了一个问题,即到这个块占用空间下降到多少时,这个数据块才能够被重新插入数据。这就要利用Pctused参数来进行控制。
Pctused参数主要用于指定将数据块标记为可重用块的已用空间百分比,其默认值为40% 。这个定义可能看起来比较吃力。其实很好理解。就是到这个块占用空间下降到多少时,这个数据库才能够被重复插入数据的比例。也就是说,当某个块其使用率已经到了91,超过了Pctfree参数所指定的10% 时,剩余的块空间将不能够再进行插入数据的操作。用户接下去删除了一些数据,使得这个块空间使用率降到了70%,虽然其已经不到Pctree规定的10%的比例,但是此时用户仍然不能够在这个块空间中插入数据。因为其还没有达到Pctused规定的40%的可充用比例(默认设置)。只有用户继续删除数据,使得块使用率降低到了60%以后,再进行插入操作时,才可以利用这个块剩余的空间。
数据库专家只所以要设置这个参数,仍然是从数据库的性能考虑。为此,数据库管理员要掌握Pctused参数设置的一个基本规则。如果Pctused参数设置的比较小,则可以降低数据更新与删除操作的处理开销,但是会增加数据库的未用空间。如果把这个参数设置的大一点,其效果就刚好相反,在提高数据库空间利用的同时,增加数据库插入操作与更新操作的处理开销。
所以,如果数据库对象主要用户插入等操作,如销售订单等等,则最好把这个参数设置的比较小。相反,如果表主要用来进行查询操作的,则就可以把这个参数设置的适当大一点。
二、根据事务多少设置初始事务入口个数。
在说这个Initrans参数之前,笔者先提醒一下。这个参数并不常用。在大部分时候,数据库管理员可以忽视这个参数的存在。
在通常情况下,数据库要把这个面包分给多少人使用呢?这就是一个事务入口个数的问题。通过Initrans参数可以指定块初始事务入口个数。数据库管理员如果设置了这个参数之后,数据库就会在块头上为每个事务入口预留相应的空间。如果设置为200,就会预留200个入口的空间。可见,这个参数设置的越打,则块可使用空间就会越少。如果预留的空间被用完之后,数据库仍然会从剩余的可用空间中为其分配更多的空间,而且这些空间会转化为块头空间的永久部分。通常情况下,数据库允许的最大事务入口个数为255。
说实话,这个参数的使用频度远远没有以上两个参数这么高。一般情况下,数据库管理员都不会去调整这个参数。只有在一些对于性能有比较苛刻的要求,而且偏向于单机处理的系统,如一些决策系统等等,才会在有需要的时候,去调整这个参数,以达到改善数据库性能的目的。故笔者建议,在一般企业应用时,没有必要去调整这个参数。
在配置以上几个参数时,还有一些小细节,笔者要做一些友情提醒。
一是后续的修改问题。正常情况下,若数据库管理员在后续的维护中,发现某个参数设置的不怎么合适时,可以利用Alter命令进行修改。但是,有一种情况不能够修改。即如果在索引中设置了Pctree参数的话,则这个值不能够修改。否则的话,数据库会拒绝。 3COME文档编辑
二是使用的范围问题。据笔者所了解,这个参数参数的主要适用对象为表、索引、以及簇。但是,Fctused这个参数用来定义已可用空间的比例,他并并不适用索引这个对象。也即是说,在定义索引时不能够使用Pctused参数,可以使用Pctfreed参数;但是在后续修改时,则Pctfree参数不能够修改。故在除非特别有把握的情况下,还是不要为索引设置Pctree参数。因为这个没有后悔药。其他参数或者数据库对象,在后续发现设置不合理时,还可以进行修改。但是,索引则不行。
三是在建立以上三个数据库对象时,这些参数都是可选的。如果没有设置的话,则数据库将会启用默认设置。通常情况下,Pctfree参数默认值为10%,Pctused默认值为40%等等。若数据库管理员需要了解这些具体的配置信息,可以查看对应的动态性能视图。有关如何查询动态性能视图,大家可以翻看笔者以前写的文章。在对块参数进行修改之前,数据库管理员有必要先了解一下当前的配置,并做好相关的纪录。若发现更改后,数据库性能没有得到改善,甚至越来越糟糕的时候,还可以马上改回来。
通过上面的分析,我们知道块是数据库中最小的输入输出单位。通过块参数的设置,可以降低输入输出的冲突,从而提高数据库性能。这是数据库管理员调整数据库输入输出性能的常用手段之一。
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/