字典管理 VS. 本地管理
2008-10-02 10:45
190 查看
导读:
字典管理和本地管理的表空间
在Oracle8.1.5之前,表空间中管理区段的分配只有一种方法:字典管理的表空间(dictionary-managed tablespace),这种情况下,需要执行递归SQL来得到更多空间,而且对字典的更新必须是串行的,他们不可能同时进行,开销会很大,所以要尽量避免。
在Oracle的早期版本中,这种空间管理问题(递归SQL开销)在“临时表空间”中最常见。空间会频繁地分配和撤销,这些操作必须串行执行,这就大大削弱了并发行,而增加了等待时间。
在7.3版本中,Oracle引入了一个真正的临时表空间(true temporary tablespace)概念,它的管理完全不同,当有人需要临时空间时,Oracle会在内存中的数据结构里查找空间,而不是执行代价昂贵的递归SQL。
在
Oracle8.1.5之后,引入了本地管理表空间(locally-managed
tablespace)的概念,与Oracle7.3中管理临时表空间的方法一样,本地管理表空间使用每个数据文件中存储的一个位图来管理区段,这样系统
只需要在表空间级串行执行一个速度很快的置位操作,而不需要在数据库级串行完成耗时的递归SQl。本地管理的表空间还有另外一些很好的特性,如可以保证区段的大小统一。
确定某个表空间是字典管理或者本地管理:
SQL> select tablespace_name, extent_management from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN
------------------------------ ----------
SYSTEM
LOCAL
UNDOTBS1
LOCAL
TEMP
LOCAL
CWMLITE
LOCAL
DRSYS
LOCAL
EXAMPLE
LOCAL
INDX
LOCAL
ODM
LOCAL
TOOLS
LOCAL
USERS
LOCAL
XDB
LOCAL
本地管理表空间与字典管理表空间相比大大提高了管理效率和数据库性能,其优点如下:
1.减少了递归空间管理
本地管理表空间是自己管理分配,而不是象字典管理表空间需要系统来管理空间分配,本地表空间是通过在表空间的每个数据文件中维持一个位图来跟踪在此文件中块的剩余空间及使用情况。并及时做更新。这种更新只对表空间的额度情况做修改而不对其他数据字典表做任何update操作,所以不会产生任何回退信息,从而大大减少了空间管理,提高了管理效率。同时由于本地管理表空间可以采用统一大小分配方式(UNIFORM),因此也大大减小了空间管理,提高了数据库性能。
2.系统自动管理extents大小或采用统一extents大小
本
地管理表空间有自动分配(AUTOALLOCATE)和统一大小分配(UNIFORM)两种空间分配方式,自动分配方式(AUTOALLOCATE)是由
系统来自动决定extents大小,而统一大小分配(UNIFORM)则是由用户指定extents大小。这两种分配方式都提高了空间管理效率。
3.减少了数据字典之间的竞争
因为本地管理表空间通过维持每个数据文件的一个位图来跟踪在此文件中块的空间情况并做更新,这种更新只修改表空间的额度情况,而不涉及到其他数据字典表,从而大大减少了数据字典表之间的竞争,提高了数据库性能。
4.不产生回退信息
因为本地管理表空间的空间管理除对表空间的额度情况做更新之外不修改其它任何数据字典表,因此不产生回退信息,从而大大提高了数据库的运行速度。
5.不需合并相邻的剩余空间
因为本地管理表空间的extents空间管理会自动跟踪相邻的剩余空间并由系统自动管理,因而不需要去合并相邻的剩余空间。同时,本地管理表空间的所有extents还可以具有相同的大小,从而也减少了空间碎片。
6.减少了空间碎片
7.对临时表空间提供了更好的管理
本文转自
http://blog.oracle.com.cn/index.php/121320/viewspace-7564
字典管理和本地管理的表空间
在Oracle8.1.5之前,表空间中管理区段的分配只有一种方法:字典管理的表空间(dictionary-managed tablespace),这种情况下,需要执行递归SQL来得到更多空间,而且对字典的更新必须是串行的,他们不可能同时进行,开销会很大,所以要尽量避免。
在Oracle的早期版本中,这种空间管理问题(递归SQL开销)在“临时表空间”中最常见。空间会频繁地分配和撤销,这些操作必须串行执行,这就大大削弱了并发行,而增加了等待时间。
在7.3版本中,Oracle引入了一个真正的临时表空间(true temporary tablespace)概念,它的管理完全不同,当有人需要临时空间时,Oracle会在内存中的数据结构里查找空间,而不是执行代价昂贵的递归SQL。
在
Oracle8.1.5之后,引入了本地管理表空间(locally-managed
tablespace)的概念,与Oracle7.3中管理临时表空间的方法一样,本地管理表空间使用每个数据文件中存储的一个位图来管理区段,这样系统
只需要在表空间级串行执行一个速度很快的置位操作,而不需要在数据库级串行完成耗时的递归SQl。本地管理的表空间还有另外一些很好的特性,如可以保证区段的大小统一。
确定某个表空间是字典管理或者本地管理:
SQL> select tablespace_name, extent_management from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN
------------------------------ ----------
SYSTEM
LOCAL
UNDOTBS1
LOCAL
TEMP
LOCAL
CWMLITE
LOCAL
DRSYS
LOCAL
EXAMPLE
LOCAL
INDX
LOCAL
ODM
LOCAL
TOOLS
LOCAL
USERS
LOCAL
XDB
LOCAL
本地管理表空间与字典管理表空间相比大大提高了管理效率和数据库性能,其优点如下:
1.减少了递归空间管理
本地管理表空间是自己管理分配,而不是象字典管理表空间需要系统来管理空间分配,本地表空间是通过在表空间的每个数据文件中维持一个位图来跟踪在此文件中块的剩余空间及使用情况。并及时做更新。这种更新只对表空间的额度情况做修改而不对其他数据字典表做任何update操作,所以不会产生任何回退信息,从而大大减少了空间管理,提高了管理效率。同时由于本地管理表空间可以采用统一大小分配方式(UNIFORM),因此也大大减小了空间管理,提高了数据库性能。
2.系统自动管理extents大小或采用统一extents大小
本
地管理表空间有自动分配(AUTOALLOCATE)和统一大小分配(UNIFORM)两种空间分配方式,自动分配方式(AUTOALLOCATE)是由
系统来自动决定extents大小,而统一大小分配(UNIFORM)则是由用户指定extents大小。这两种分配方式都提高了空间管理效率。
3.减少了数据字典之间的竞争
因为本地管理表空间通过维持每个数据文件的一个位图来跟踪在此文件中块的空间情况并做更新,这种更新只修改表空间的额度情况,而不涉及到其他数据字典表,从而大大减少了数据字典表之间的竞争,提高了数据库性能。
4.不产生回退信息
因为本地管理表空间的空间管理除对表空间的额度情况做更新之外不修改其它任何数据字典表,因此不产生回退信息,从而大大提高了数据库的运行速度。
5.不需合并相邻的剩余空间
因为本地管理表空间的extents空间管理会自动跟踪相邻的剩余空间并由系统自动管理,因而不需要去合并相邻的剩余空间。同时,本地管理表空间的所有extents还可以具有相同的大小,从而也减少了空间碎片。
6.减少了空间碎片
7.对临时表空间提供了更好的管理
本文转自
http://blog.oracle.com.cn/index.php/121320/viewspace-7564
相关文章推荐
- Oracle技术之本地管理表空间_字典管理表空间_ASSM特点
- 初识oracle的本地管理表空间和字典管理表空间
- 表空间的管理-字典和本地管理
- ORACLE 本地管理表空间与字典管理表空间的比较
- 字典管理表空间,本地管理表空间与ASSM
- 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
- 将字典管理表空间转换为本地管理表空间
- 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
- 本地管理的表空间--数据字典管理的表空间
- Oracle本地管理对照数据字典管理表空间
- 表空间字典管理和本地管理的学习笔记
- 本地表空间管理与字典表空间管理深入研究
- Oracle表空间为"本地管理"与"数据字典"管理区别?
- 迁移数据字典、本地管理的表空间:删除表空间
- Oracle 本地表空间管理与字典…
- 字典管理表空间DMT和本地管理表空间LMT
- 本地管理表空间与字典管理表空间的比较
- PL/SQL基础编程之(十一)[表空间概述、说明、创建][本地管理和字典管理、切换管理方式]
- VS2013使用本地GIT管理源代码
- 表空间管理方式 本地化管理VS字典管理(旧)