oracle blevel降低,Oracle 数据库空间预估方法

数据库空间估算

在做数据库设计过程中必须要进行多个方面的计划,其中空间估算尤其是一个DBA所不能回避的问题。

空间估算的准确与否决定了

1。系统对资源的需求--投资问题

2。数据分布是否合理--数据结构设计问题

3。应用设计,特别是数据存取方面的设计--系统运行性能问题等。

同时,由于ORACLE数据类型的多样,数据模型的复杂,空间估算也代表了相当大的工作量。

通常的空间估算包括了对TABLE,INDEX,CLUSTER,ROLLBACK SEGMENT,TEMPORARY SEGMENT以及REDO LOG方面等的计算。在本文中重点给出了对TABLE,INDEX的估算。

应该强调的是估算工作主要针对数据库中比较大的表,以及在应用中变化量较大的表。

在进行空间估算之前,有必要再回顾以下认识:

1。对于数据块的认识:

。数据块的大小有DB_BLOCK_SIZE决定,并且只有通过重建数据库来得到调整。空间计算的根据来自于数据块。

。数据块由数据块头,数据区组成。数据区的使用由PCTFREE,PCTUSED控制。当INSERT发生时,

PCTFREE决定了该块所能容纳的最多的数据,即,剩余空间占数据块实际空间的百分比不小于PCTFREE。

空间估算中PCTFREE是很一个很重要的参数。

2。对于在表上进行的事务(TRANSACTION)类型要有一个清晰的认识,因为这会帮助如何更好的确定PCTFREE & PCTUSED。

例如:

如果PCTFREE的值太大,记录又可能很长,这会引起行链接(ROW-CHAINING),同时空间利用率也不高; 如果PCTFREE的值太小,会影响块数据记录的增长,容易引起行迁移(ROW-MIGURATING);

如果PCTUSED的值太大,空间上似乎没什么问题,但数据块的操作上又有潜在的性能问题,因为数据块需要在

FREELIST上反复搬动;

如果PCTUSED的值太小,则又出现了空间利用率不高的问题。

3。PCTFREE & PCTUSED表示的是DB_BLOCK_SIZE减去数据块头后的百分比值。

4。ORACLE采用的是延迟写(DELAYED CLEANOUT)方式来完成事务处理,所以由DELETE及UPDATE等操作释放的空间并不会

马上被利用。这一点在数据变化频繁时需要加以考虑。

5。记录结尾空值(TRAILING NULLS)不占存储空间,但如果出现在记录中间,则会占用1 byte。所以ORACLE建议尽可能

将经常出现空值的列放在结构定义的尾部。

6。CHAR,DATE是定长数据类型,NUMBER,VARCHAR2,LONG,LONG RAW等是变长数据类型。其中DATE的长度固定为7 BYTES,

包括世纪,年,月,日,时,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值