ITPub博客

首页 > 数据库 > Oracle > 对Oracle数据库中Stroage子句的一些理解

对Oracle数据库中Stroage子句的一些理解

原创 Oracle 作者:lilong 时间:2004-10-25 23:11:16 0 删除 编辑
在工作中经常能遇到因Stroage参数设置不当引起的问题,以下是我对Storage子句的一些浅显的理解。 [@more@] INITIAL 对象建立时分配的初始区的大小
NEXT 与 PCTINCREASE 一起使用,用于计算后来分配的区的大小
PCTINCREASE 下一次分配的区要增加的百分比
MINEXTENTS 给对象(当它建立时)分配的区的最小数量
MAXEXTENTS 可以分配给对象的区的最大数量
一旦建立了某个对象,它的数据存储参数INITIAL 和MINEXTENTS 不能修改,除非删除和重新创建该对象。对于NEXT 和 PCTINCREASE 的任何更改都只影响后来分配的那些区。
如果一个表空间的PCTINCREASE数据存储参数的值大于零,则后台实例进程SMON将担当间接聚集该表空间的可用区的任务,另一种方法:ALTER TABLESPACE …… COALESCE;
通常使用的技巧是将PCTINCREASE 设为较小的非零数(通常设为1)来引起SMON 执行后台聚集。这表面上看起来似乎是一件好事,但这样做实际上存在三个问题。首先, PCTINCREASE 设为非零值将导致空间碎块的增加,因此,事实上它产生了恰好是您想通过聚集解决的问题。由于PCTINCREASE 引起下一个区的大小成指数增加,即使是一个最小的PCTINCREASE 值(如1),随时间的推移合计起来也会对后来的区分配增加很大的尺寸。其次,它引起SMON 的不必要的性能开销。再其次, SMON 本身在聚集可用空间方面效率并不高。通过将PCTINCREASE 设为零并定期使用ALTER TABLESPACE …… COALESCE命令直接聚集可用空间,可更有效管理可用空间碎片。
通过使用导出参数COMPRESS = Y,可以重新创建将表和索引重新创建到一个单独的、大的区中。
回滚段和临时段的PCTINCREASE必须为0。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18966/viewspace-779752/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 虚度六年
请登录后发表评论 登录
全部评论
  • 博文量
    50
  • 访问量
    902958