Locally vs. Dictionary Managed T…
2013-01-28 22:05
363 查看
Locally vs. Dictionary Managed
Tablespaces
Submitted by admin on Tue, 2003-07-01
12:31
·
RDBMS Server
When Oracle allocates space to a
segment (like a table or index), a group of contiguous free blocks,
called an extent, is added to the segment. Metadata regarding
extent allocation and unallocated extents are either stored in the
data dictionary, or in the tablespace itself. Tablespaces that
record extent allocation in the dictionary, are called dictionary
managed tablespaces, and tablespaces that record extent allocation
in the tablespace header, are called locally managed
tablespaces.
SQL> select
tablespace_name, extent_management, allocation_type from
dba_tablespaces;
TABLESPACE_NAME
EXTENT_MAN ALLOCATIO
------------------------------
---------- ---------
SYSTEM
DICTIONARY USER
SYS_UNDOTS
LOCAL
SYSTEM
TEMP
LOCAL
UNIFORM
Dictionary Managed Tablespaces
(DMT):
Oracle use the data dictionary
(tables in the SYS schema) to track allocated and free extents for
tablespaces that is in "dictionary managed" mode. Free space is
recorded in the SYS.FET$ table, and used space in the SYS.UET$
table. Whenever space is required in one of these tablespaces, the
ST (space transaction) enqueue latch must be obtained to do inserts
and deletes agianst these tables. As only one process can acquire
the ST enque at a given time, this often lead to
contention.
Execute the following statement to
create a dictionary managed
tablespace:
SQL> CREATE TABLESPACE
ts1 DATAFILE '/oradata/ts1_01.dbf' SIZE 50M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 2 MAXEXTENTS 50
PCTINCREASE 0);
Locally Managed Tablespaces
(LMT):
Using LMT, each tablespace manages
it's own free and used space within a bitmap structure stored in
one of the tablespace's data files. Each bit corresponds to a
database block or group of blocks. Execute one of the following
statements to create a locally managed
tablespace:
SQL> CREATE TABLESPACE
ts2 DATAFILE '/oradata/ts2_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
SQL> CREATE TABLESPACE
ts3 DATAFILE '/oradata/ts3_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
Note the difference between
AUTOALLOCATE and UNIFORM SIZE:
AUTOALLOCATE specifies that extent
sizes are system managed. Oracle will choose "optimal" next extent
sizes starting with 64KB. As the segment grows larger extent sizes
will increase to 1MB, 8MB, and eventually to 64MB. This is the
recommended option for a low or unmanaged environment.
UNIFORM specifies that the tablespace
is managed with uniform extents of SIZE bytes (use K or M to
specify the extent size in kilobytes or megabytes). The default
size is 1M. The uniform extent size of a locally managed tablespace
cannot be overridden when a schema object, such as a table or an
index, is created.
Also not, if you specify, LOCAL, you
cannot specify DEFAULT STORAGE, MINIMUM EXTENT or
TEMPORARY.
Advantages of Locally Managed
Tablespaces:
Eliminates the need for recursive SQL
operations against the data dictionary (UET$ and FET$
tables)
Reduce contention on data dictionary
tables (single ST enqueue)
Locally managed tablespaces eliminate
the need to periodically coalesce free space (automatically tracks
adjacent free space)
Changes to the extent bitmaps do not
generate rollback information
Locally Managed SYSTEM
Tablespace:
From Oracle9i release 9.2 one can
change the SYSTEM tablespace to locally managed. Further, if you
create a database with DBCA (Database Configuration Assistant), it
will have a locally managed SYSTEM tablespace by default. The
following restrictions apply:
No dictionary-managed tablespace in
the database can be READ WRITE.
You cannot create new dictionary
managed tablespaces
You cannot convert any dictionary
managed tablespaces to local
Thus, it is best only to convert the
SYSTEM tablespace to LMT after
all other tablespaces are migrated to LMT.
Segment Space Management in
LMT:
From Oracle 9i, one can not only have
bitmap managed tablespaces, but also bitmap managed segments when
setting Segment Space Management to AUTO for a tablespace. Look at
this example:
SQL> CREATE TABLESPACE
ts4 DATAFILE '/oradata/ts4_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
Segment Space Management eliminates
the need to specify and tune the PCTUSED, FREELISTS, and FREELISTS
GROUPS storage parameters for schema objects. The Automatic Segment
Space Management feature improves the performance of concurrent DML
operations significantly since different parts of the bitmap can be
used simultaneously eliminating serialization for free space
lookups against the FREELSITS. This is of particular importance
when using RAC, or if "buffer busy waits" are deteted.
Convert between LMT and
DMT:
The DBMS_SPACE_ADMIN package allows
DBAs to quickly and easily
convert between LMT and DMT mode. Look at these
examples:
SQL> exec
dbms_space_admin.Tablespace_Migrate_TO_Local('ts1');
PL/SQL procedure successfully
completed.
SQL> exec
dbms_space_admin.Tablespace_Migrate_FROM_Local('ts2');
PL/SQL procedure successfully
completed.
»
·
admin's blog
·
Login to post comments
Submitted by Chandran (not verified)
on Wed, 2004-07-07 06:30.
This article is very much
informative.
It is possible to have a Locally
Managed SYSTEM tablespace. However, is it possible to set Segment
Space Management Auto clause to the SYSTEM tablespace?
Thanks,
Chandran
»
·
Login to post comments
Submitted by Chris (not verified) on
Thu, 2004-10-14 10:08.
Oracle version 9i rel 2 supports
locally managed system tablespaces.
»
·
Login to post comments
No, it is not possible to use
Submitted by bjoseph on Tue,
2011-05-31 07:41.
No, it is not possible to use ASSM
for the SYSTEM tablespace (at least in Oracle 10g and
11g).
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7003.htm (I was searching the answer for the
same question when I found your question first, and so the reply
even if it is late)
»
Tablespaces
Submitted by admin on Tue, 2003-07-01
12:31
·
RDBMS Server
When Oracle allocates space to a
segment (like a table or index), a group of contiguous free blocks,
called an extent, is added to the segment. Metadata regarding
extent allocation and unallocated extents are either stored in the
data dictionary, or in the tablespace itself. Tablespaces that
record extent allocation in the dictionary, are called dictionary
managed tablespaces, and tablespaces that record extent allocation
in the tablespace header, are called locally managed
tablespaces.
SQL> select
tablespace_name, extent_management, allocation_type from
dba_tablespaces;
TABLESPACE_NAME
EXTENT_MAN ALLOCATIO
------------------------------
---------- ---------
SYSTEM
DICTIONARY USER
SYS_UNDOTS
LOCAL
SYSTEM
TEMP
LOCAL
UNIFORM
Dictionary Managed Tablespaces
(DMT):
Oracle use the data dictionary
(tables in the SYS schema) to track allocated and free extents for
tablespaces that is in "dictionary managed" mode. Free space is
recorded in the SYS.FET$ table, and used space in the SYS.UET$
table. Whenever space is required in one of these tablespaces, the
ST (space transaction) enqueue latch must be obtained to do inserts
and deletes agianst these tables. As only one process can acquire
the ST enque at a given time, this often lead to
contention.
Execute the following statement to
create a dictionary managed
tablespace:
SQL> CREATE TABLESPACE
ts1 DATAFILE '/oradata/ts1_01.dbf' SIZE 50M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 2 MAXEXTENTS 50
PCTINCREASE 0);
Locally Managed Tablespaces
(LMT):
Using LMT, each tablespace manages
it's own free and used space within a bitmap structure stored in
one of the tablespace's data files. Each bit corresponds to a
database block or group of blocks. Execute one of the following
statements to create a locally managed
tablespace:
SQL> CREATE TABLESPACE
ts2 DATAFILE '/oradata/ts2_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
SQL> CREATE TABLESPACE
ts3 DATAFILE '/oradata/ts3_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
Note the difference between
AUTOALLOCATE and UNIFORM SIZE:
AUTOALLOCATE specifies that extent
sizes are system managed. Oracle will choose "optimal" next extent
sizes starting with 64KB. As the segment grows larger extent sizes
will increase to 1MB, 8MB, and eventually to 64MB. This is the
recommended option for a low or unmanaged environment.
UNIFORM specifies that the tablespace
is managed with uniform extents of SIZE bytes (use K or M to
specify the extent size in kilobytes or megabytes). The default
size is 1M. The uniform extent size of a locally managed tablespace
cannot be overridden when a schema object, such as a table or an
index, is created.
Also not, if you specify, LOCAL, you
cannot specify DEFAULT STORAGE, MINIMUM EXTENT or
TEMPORARY.
Advantages of Locally Managed
Tablespaces:
Eliminates the need for recursive SQL
operations against the data dictionary (UET$ and FET$
tables)
Reduce contention on data dictionary
tables (single ST enqueue)
Locally managed tablespaces eliminate
the need to periodically coalesce free space (automatically tracks
adjacent free space)
Changes to the extent bitmaps do not
generate rollback information
Locally Managed SYSTEM
Tablespace:
From Oracle9i release 9.2 one can
change the SYSTEM tablespace to locally managed. Further, if you
create a database with DBCA (Database Configuration Assistant), it
will have a locally managed SYSTEM tablespace by default. The
following restrictions apply:
No dictionary-managed tablespace in
the database can be READ WRITE.
You cannot create new dictionary
managed tablespaces
You cannot convert any dictionary
managed tablespaces to local
Thus, it is best only to convert the
SYSTEM tablespace to LMT after
all other tablespaces are migrated to LMT.
Segment Space Management in
LMT:
From Oracle 9i, one can not only have
bitmap managed tablespaces, but also bitmap managed segments when
setting Segment Space Management to AUTO for a tablespace. Look at
this example:
SQL> CREATE TABLESPACE
ts4 DATAFILE '/oradata/ts4_01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
Segment Space Management eliminates
the need to specify and tune the PCTUSED, FREELISTS, and FREELISTS
GROUPS storage parameters for schema objects. The Automatic Segment
Space Management feature improves the performance of concurrent DML
operations significantly since different parts of the bitmap can be
used simultaneously eliminating serialization for free space
lookups against the FREELSITS. This is of particular importance
when using RAC, or if "buffer busy waits" are deteted.
Convert between LMT and
DMT:
The DBMS_SPACE_ADMIN package allows
DBAs to quickly and easily
convert between LMT and DMT mode. Look at these
examples:
SQL> exec
dbms_space_admin.Tablespace_Migrate_TO_Local('ts1');
PL/SQL procedure successfully
completed.
SQL> exec
dbms_space_admin.Tablespace_Migrate_FROM_Local('ts2');
PL/SQL procedure successfully
completed.
»
·
admin's blog
·
Login to post comments
Submitted by Chandran (not verified)
on Wed, 2004-07-07 06:30.
This article is very much
informative.
It is possible to have a Locally
Managed SYSTEM tablespace. However, is it possible to set Segment
Space Management Auto clause to the SYSTEM tablespace?
Thanks,
Chandran
»
·
Login to post comments
Submitted by Chris (not verified) on
Thu, 2004-10-14 10:08.
Oracle version 9i rel 2 supports
locally managed system tablespaces.
»
·
Login to post comments
No, it is not possible to use
Submitted by bjoseph on Tue,
2011-05-31 07:41.
No, it is not possible to use ASSM
for the SYSTEM tablespace (at least in Oracle 10g and
11g).
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7003.htm (I was searching the answer for the
same question when I found your question first, and so the reply
even if it is late)
»
相关文章推荐
- Locally managed (LMT) vs. Dictionary managed (DMT) tablespace
- Locally vs. Dictionary Managed Tablespaces
- 士兵大战外星人Soldier vs&nb…
- CPU使用率 VS Load Average
- 士兵大战外星人Soldier vs&nb…
- AFNetworking VS ASIHTTPRequest
- MEF简介: Managed Extensibility FrameWork
- VS string 默认值
- 【原创】 Window7 vs201…
- vs Link错误
- 专家观点:中国数字货币 VS&n…
- VS 2008 自动换行设置
- Swift中级学习 3 字典DIctionary
- VS调试技巧 (转载)
- 冲销物料凭证:'MBST' VS 'MBRL'
- VS 2005 Web Application Project & Atlas Control Toolkit & CSS Control Adapter
- Making User-Managed Backups in S…
- win7中使用VS10配置Direct Show
- 我用的是vs 2008,为什么在类里面…
- Dictionary Learning