Starting with Oracle 9i, DBAs can now create locally managed tablespaces.
A
Locally Managed TBS manages its own list of free extents in a bitmap
block placed inside the header of the first data file of the
tablespace. Inside the bitmap block, each bit maps to a free block in
the tablespace.
When creating a locally managed tablespace, you can specify the extent allocation method to be used.
AUTOALLOCATE
- means that the extent sizes are managed by Oracle.
Oracle will choose the optimal next size for the extents starting with 64KB
. As the segments grow and more extents are needed, Oracle will start allocating larger and larger sizes ranging from 1Mb
to eventually 64Mb
extents. This might help conserve space but will lead to fragmentation.
This is usually recommended for small tables or in low managed systems.
UNIFORM
- specifies that the extent allocation in the tablespace is in a fixed
uniform size. The extent size can be specified in M or K. The default
size for UNIFORM extent allocation is 1M
. Using uniform extents usually minimizes fragmentation and leads to better overall performance.
SQL>CREATE TABLESPACE test_tablespcae DATAFILE '/emc/oradata/test_tablespace1.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
SQL>CREATE TABLESPACE test_tablespcae DATAFILE '/emc/oradata/test_tablespace1.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
I
usually prefer to keep large production-grade tables in UNIFORM sized
tablespaces and smaller tables or tables in unmanaged environments in
AUTOALLOCATE tablespaces.
作者在上文提到“自动分配”方式extent的尺寸是从64kb开始,这就说明segment的storage的initial参数必须大于64k,否则无效并使用64k。
在“自动分配”方式下,建表的参数:pctincrease、next extent、Max extents pctused 等参数无效
本文介绍了Oracle9i中引入的本地管理表空间的概念及其两种主要的extent分配方式:自动分配(AUTOALLOCATE)与统一大小(UNIFORM)。自动分配方式由Oracle自动管理extent大小,从64KB起始,随segment增长逐步增大。统一大小则固定extent尺寸,默认为1MB,有助于减少碎片提高性能。

768


被折叠的 条评论
为什么被折叠?



