初识oracle的本地管理表空间和字典管理表空间
2017-10-22 10:21
288 查看
虽然真的好久不用oracle了,但是遇到选择题,还是得学习一下,为明年春招笔试做准备呀....
1、牛客网原题:
2、转载内容:http://m.blog.csdn.net/gumengkai/article/details/71304772
根据这个博客的内容,自己又整理了一下,看起来结构清晰一些了 >_<
2.1、本地管理表空间(LMT)与自动段空间管理(ASSM)
2.2、创建表空间时,extent management local定义本地管理表空间(LMT), segment space management auto定义自动段空间管理(ASSM)。
2.3、extent management local(本地管理表空间)是在表空间的头部用位图来记录extent(区)的使用情况(是否为free)。与之相对应的是字典管理表空间,用数据字典来记录extent使用信息。
segment space management auto(段空间自动管理)是在段的头部使用位图管理块(BMB)来记录block的使用情况(是否为free)。与之相对应的是使用freelists进行管理的方式。
可以理解为,本地管理表空间作用于表空间中的区,自动段空间管理作用于段中的数据块。
2.4、本地管理表空间、字典管理表空间、ASSM特点
2.4.1、字典管理表空间(Dictionary-Management Tablespace简称DMT)
(1)8i以前包括以后都可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。
(2)Oracle使用两个字典来记录extents的使用情况:SYS.FET$记录空闲的extents,SYS.(3)UET$记录使用的extents。在分配和释放分区时,都要修改两个字典。属于DML操作,存在竞争,每个动作都是一个事务,会产生Undo记录。需要周期性进行合并操作,效率低下。
2.4.2、本地管理表空间(Locally Managed Tablespace简称LMT)。
(1)为8I之后出现的一种新的表空间的管理模式,通过位图来管理表空间的使用。
(2)SQL> create tablespace demo datafile '/u01/app/oracle/oradata/orcl/demo01.dbf' size 10m extent management local uniform size 64k;
Tablespace created.
(3)通过数据文件头文件中的一个位图来记录文件中表空间的使用情况,每个BIT代表数据区,通过改变bit来表示extents的分配使用和释放,不属于DML操作,也不会产生Undo记录,可以自动跟踪连续的空闲空间。带来的优势:不需要使用字典SYS.FET$和SYS.UET$上的递归sql调用,减少了数据字典的竞争,不会产生Undo记录,不在需要周期性的合并操作。
2.4.3、自动段空间管理(ASSM)
(1)在920之前,表的剩余空间的管理和分配都是由连接列表freelist来完成的,因为freelist存在串行的问题,因此容易引起段头的争用和空间的浪费(其实这一点并不明显),最主要的是需要dba花费大量的精力去管理这些争用并监控表的空间利用。
(2)ASSM首次出现在920里。有了ASSM,连接列表freelist被位图取代,他是一个二进制的数组,能够迅速有效的管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段可以称为Bitmap Managed Segments(BMB段)
(3)Create tablespaceleonarding
datafile '/ora01/oem/leonarding01.dbf '
size 10m
EXTENT MANAGEMENT LOCAL-- Turn on LMT
SEGMENT SPACE MANAGEMENT AUTO-- Turn on ASSM;
(4)使用ASSM的一个巨大优势是,位图freelist肯定能够减轻缓冲区忙等待(buffer busy wait)负担,这个问题在9i之前的版本很严重。
在没有多个free list的时候,每个oracle表格和索引在表格的头部都曾有一个数据块,用来管理对象所使用的剩余区块,并为任何sql插入声明所创建的新数据行提供数据块。当数据缓冲区内的数据块由于被另一个DML事务处理锁定而无法使用的时候,缓冲区忙等待就会发生。当需要将多个任务插入到同一个表格里的时候,这些任务就被强制等待,而同时oracle会在同时分配剩余的区块,一次一个。
有了ASSM之后,Oracle宣称显著提高了DML并发操作的性能,因为同一个位图的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。使用位图freelist会消除所有分段头部对资源的争夺,还能获得超快的高并发插入操作。
(5)ASSM的局限性
尽管ASSM显示出了令人激动的特性并能够简化Oracle DBA的工作,但是Oracle9i的位图分段管理还是有一些局限性的:
1.一旦DBA被分配之后,它就无法控制tablespace内部的独立表格和索引的存储行为。
2.大型对象不能够使用ASSM,而且必须为包含有LOB数据类型的表格创建分离的tablespace。
3.你不能够使用ASSM创建临时的tablespace。这是由排序时临时分段的短暂特性所决定的。
4.只有本地管理的tablespace才能够使用位图分段管理。
5.使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的时候可能会出现性能上的问题。
1、牛客网原题:
2、转载内容:http://m.blog.csdn.net/gumengkai/article/details/71304772
根据这个博客的内容,自己又整理了一下,看起来结构清晰一些了 >_<
2.1、本地管理表空间(LMT)与自动段空间管理(ASSM)
SQL> select tablespace_name,segment_space_management from dba_tablespaces; TABLESPACE_NAME SEGMEN ------------------------------ ------ SYSTEM MANUAL SYSAUX AUTO UNDOTBS1 MANUAL TEMP MANUAL USERS AUTO OGG AUTO 6 rows selected.
2.2、创建表空间时,extent management local定义本地管理表空间(LMT), segment space management auto定义自动段空间管理(ASSM)。
2.3、extent management local(本地管理表空间)是在表空间的头部用位图来记录extent(区)的使用情况(是否为free)。与之相对应的是字典管理表空间,用数据字典来记录extent使用信息。
segment space management auto(段空间自动管理)是在段的头部使用位图管理块(BMB)来记录block的使用情况(是否为free)。与之相对应的是使用freelists进行管理的方式。
可以理解为,本地管理表空间作用于表空间中的区,自动段空间管理作用于段中的数据块。
2.4、本地管理表空间、字典管理表空间、ASSM特点
2.4.1、字典管理表空间(Dictionary-Management Tablespace简称DMT)
(1)8i以前包括以后都可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。
(2)Oracle使用两个字典来记录extents的使用情况:SYS.FET$记录空闲的extents,SYS.(3)UET$记录使用的extents。在分配和释放分区时,都要修改两个字典。属于DML操作,存在竞争,每个动作都是一个事务,会产生Undo记录。需要周期性进行合并操作,效率低下。
2.4.2、本地管理表空间(Locally Managed Tablespace简称LMT)。
(1)为8I之后出现的一种新的表空间的管理模式,通过位图来管理表空间的使用。
(2)SQL> create tablespace demo datafile '/u01/app/oracle/oradata/orcl/demo01.dbf' size 10m extent management local uniform size 64k;
Tablespace created.
(3)通过数据文件头文件中的一个位图来记录文件中表空间的使用情况,每个BIT代表数据区,通过改变bit来表示extents的分配使用和释放,不属于DML操作,也不会产生Undo记录,可以自动跟踪连续的空闲空间。带来的优势:不需要使用字典SYS.FET$和SYS.UET$上的递归sql调用,减少了数据字典的竞争,不会产生Undo记录,不在需要周期性的合并操作。
2.4.3、自动段空间管理(ASSM)
(1)在920之前,表的剩余空间的管理和分配都是由连接列表freelist来完成的,因为freelist存在串行的问题,因此容易引起段头的争用和空间的浪费(其实这一点并不明显),最主要的是需要dba花费大量的精力去管理这些争用并监控表的空间利用。
(2)ASSM首次出现在920里。有了ASSM,连接列表freelist被位图取代,他是一个二进制的数组,能够迅速有效的管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段可以称为Bitmap Managed Segments(BMB段)
(3)Create tablespaceleonarding
datafile '/ora01/oem/leonarding01.dbf '
size 10m
EXTENT MANAGEMENT LOCAL-- Turn on LMT
SEGMENT SPACE MANAGEMENT AUTO-- Turn on ASSM;
(4)使用ASSM的一个巨大优势是,位图freelist肯定能够减轻缓冲区忙等待(buffer busy wait)负担,这个问题在9i之前的版本很严重。
在没有多个free list的时候,每个oracle表格和索引在表格的头部都曾有一个数据块,用来管理对象所使用的剩余区块,并为任何sql插入声明所创建的新数据行提供数据块。当数据缓冲区内的数据块由于被另一个DML事务处理锁定而无法使用的时候,缓冲区忙等待就会发生。当需要将多个任务插入到同一个表格里的时候,这些任务就被强制等待,而同时oracle会在同时分配剩余的区块,一次一个。
有了ASSM之后,Oracle宣称显著提高了DML并发操作的性能,因为同一个位图的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。使用位图freelist会消除所有分段头部对资源的争夺,还能获得超快的高并发插入操作。
(5)ASSM的局限性
尽管ASSM显示出了令人激动的特性并能够简化Oracle DBA的工作,但是Oracle9i的位图分段管理还是有一些局限性的:
1.一旦DBA被分配之后,它就无法控制tablespace内部的独立表格和索引的存储行为。
2.大型对象不能够使用ASSM,而且必须为包含有LOB数据类型的表格创建分离的tablespace。
3.你不能够使用ASSM创建临时的tablespace。这是由排序时临时分段的短暂特性所决定的。
4.只有本地管理的tablespace才能够使用位图分段管理。
5.使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的时候可能会出现性能上的问题。
相关文章推荐
- ORACLE 本地管理表空间与字典管理表空间的比较
- Oracle技术之本地管理表空间_字典管理表空间_ASSM特点
- Oracle本地管理对照数据字典管理表空间
- 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
- 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
- 字典管理表空间,本地管理表空间与ASSM
- 00070.Oracle迁移数据字典和本地管理的表空间
- 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
- 本地管理表空间与字典管理表空间的比较
- 字典管理表空间DMT和本地管理表空间LMT
- 将字典管理表空间转换为本地管理表空间
- 本地管理表空间LMT&自动段空间管理ASSM
- PL/SQL基础编程之(十一)[表空间概述、说明、创建][本地管理和字典管理、切换管理方式]
- 迁移数据字典、本地管理的表空间:删除表空间
- 测量block size 为8K ,自动分配的本地管理表空间的位图block一位能管理多少空间
- 测量block size 为8K ,自动分配的本地管理表空间的位图block一位能管理多少空间
- 表空间字典管理和本地管理的学习笔记
- 详解Oracle本地管理表空间
- Oracle 快速删除数据字典管理的表空间
- Oracle&nbsp;本地表空间管理与字典…