程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle本地管理對比數據字典管理表空間

Oracle本地管理對比數據字典管理表空間

編輯:Oracle教程

Oracle本地管理對比數據字典管理表空間


Locally vs. Dictionary Managed Tablespaces
整理自:http://www.orafaq.com/node/3.
When Oracleallocates space to a segment (like a table or index), a group of contiguousfree blocks, called an extent, is added to the segment. Metadata regardingextent allocation and unallocated extents are either stored in the datadictionary, or in the tablespace itself. Tablespaces that record extentallocation in the dictionary, are called dictionary managed tablespaces, andtablespaces that record extent allocation in the tablespace header, are calledlocally managed tablespaces.
表空間分配段空間,即區:一組連續的塊。表空間關於區分配的信息被存於數據字典(DMT)或表空間自身(LMT)位圖區
查看數據庫中表空間管理方式:
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
DictionaryManaged Tablespaces (DMT):
Oracle use thedata dictionary (tables in the SYS schema) to track allocated and free extentsfor tablespaces that is in "dictionary managed" mode. Free space isrecorded in the SYS.FET$ table, and used space in the SYS.UET$ table. Wheneverspace 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 leadto contention(競爭).
使用數據字典管理區分配。空閒空間被記錄在SYS.FET$表中,已使用空間記錄在SYS.UET$表。
Execute thefollowing 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 50KMINEXTENTS 2 MAXEXTENTS 50 PCTINCREASE 0);
Locally ManagedTablespaces (LMT):
Using LMT, eachtablespace manages it's own free and used space within a bitmap structurestored in one of the tablespace's data files. Each bit corresponds to adatabase block or group of blocks. Execute one of the following statements tocreate a locally managed
tablespace:
注意:在Oracle920中,默認系統表空間是local管理,因此不能在數據庫中建立數據字典管理的表空間。

如果想要建立數據字典管理的表空間,必須在建立數據庫時,將系統表空間改為數據字典管理才可以。
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 differencebetween AUTOALLOCATE and UNIFORM SIZE: 注意AUTOALLOCATE與UNIFORM SIZE選項區別!
AUTOALLOCATEspecifies that extent sizes are system managed. Oracle will choose"optimal" next extent sizes starting with 64KB. As the segment growslarger extent sizes will increase to 1MB, 8MB, and eventually to 64MB. This isthe recommended option for a low or unmanaged environment.
UNIFORMspecifies 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 defaultsize is 1M. The uniform extent size of a locally managed tablespace cannot beoverridden when a schema object, such as a table or an index, is created.
Also not, if youspecify, LOCAL, you cannot specify DEFAULT STORAGE, MINIMUM EXTENT orTEMPORARY.
如果是本地管理表空間則不可以指定DEFAULT STORAGE與MINIMUM EXTENT或TEMPORARY選項。
Advantages ofLocally Managed Tablespaces: 本地管理優勢:
Eliminates the need for recursive SQL operations against the data dictionary (UET$ and FET$ tables) 消除對於數據字典表的遞歸SQL操作。
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 ManagedSYSTEM Tablespace:
From Oracle9irelease 9.2 one can change the SYSTEM tablespace to locally managed. Further, ifyou create a database with DBCA (Database Configuration Assistant), it willhave a locally managed SYSTEM tablespace by default. The following restrictionsapply:
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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved