是否建议在Oracle表空间中使用统一的范围大小?

RC.*_*RC. 4 database oracle oracle10g

自Oracle 8i发布以来,我已经使用Oracle很长一段时间了.我当时是数据库的新手,并且被教导在定义表空间时最好使用恒定大小的扩展区大小.

从我所看到的,似乎今天使用10/11g,Oracle可以自动管理这些范围大小,并且可能无法保持范围大小不变.我可以很容易地看到它如何更有效地利用磁盘空间,但这是它们的缺点.我想现在可能是时候放弃这个了.(假设我过去的教学一开始是正确的)

dpb*_*ley 8

是的,除了非常不寻常的情况之外,是时候放弃过去并使用新的Oracle扩展区管理功能了.使用本地管理的表空间(LMT)和自动扩展大小,您不必再考虑这些内容.

作为一名DBA,可变范围大小起初让我很担心,因为在7.3天内我花了很多时间重新组织表空间来消除由于非零增加的范围分配导致的碎片.(并且您需要非零百分比增加,因为根据创建数据库时使用的数据库块大小,最大扩展区数限制在不同的级别)但是,Oracle使用算法来确定扩展区大小的速率和幅度增加有效地消除了碎片.

此外,忘记任何关于如何使表或索引适合单个范围的最佳配置,或者您可以通过扩展配置以某种方式管理i/o的任何事情 - 这从未如此.在字典管理的表空间时代,在字典表中管理数千个扩展区可能会受到一些惩罚,但是LMT使用位图并不是问题.Oracle缓冲块,而不是段扩展.