千家信息网

Oracle 逻辑管理模式

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,逻辑空间管理:本地管理表空间:(默认值) 数据库使用表空间本身中的位图块来管理扩展区。因此,本地管理空间需要预留表空间的一部分用于位图块,记录区空间的使用情况。在一个表空间中, 数据库可以使用自动段空
千家信息网最后更新 2024年11月23日Oracle 逻辑管理模式

逻辑空间管理:

本地管理表空间:

(默认值) 数据库使用表空间本身中的位图块来管理扩展区。

因此,本地管理空间需要预留表空间的一部分用于位图块,记录区空间的使用情况。

在一个表空间中, 数据库可以使用自动段空间管理(ASSM)或手动段空间管理(MSSM)来管理段。

位图块:

本地管理表空间在数据文件头维护一个位图,以跟踪数据文件体中的可用空间和已用空间。每一位对应一组块。当空间被分配或释放时,Oracle数据库更改位图值,以反映数据块的新状态。

本地管理表空间优势:

1. 避免使用数据字典来管理扩展区。

2. 自动跟踪相邻的可用空间

3. 自动确定本地管理扩展区的大小

字典管理表空间:

字典管理表空间使用数据字典来管理其扩展区。

每当分配或释放了一个扩展区时,Oracle数据库更新数据字典中的表。

例如,当表需要扩展区时,数据库查询数据字典表,并搜索空闲扩展区。如果数据库找到了空间,则修改一个数据字典表,并插入一行。按这种方式,数据库通过修改和移动数据来管理空间。

段空间管理:

段空间管理是一个从包含该段的表空间继承来的数据。

在一个本地管理表空间中, 数据库可以自动地或手动管理段

例如,在users表空间中的段使用自动管理,而tools表空间中的段使用手动管理。

自动段空间管理(ASSM):

仅使用PCTFREE来控制空间分配,此参数指定块中保留用于将来的更新的空间百分比,防止行迁移。

ASSM的并发性:

多个事务可以搜索多个相互独立的空闲数据块列表,从而减少争用和等待。

手动段管理空间(MSSM):

旧式的MSSM方法使用称为空闲列表的链表来管理段中的可用空间。

对一个具有可用空间的数据库对象,有一个空闲列表会跟踪位于高水位线HWM之下的数据块。当块被使用时,数据库根据需要将块放入空闲列表,或将块从空闲列表中删除。

除了 PCTFREE,MSSM还使用PCTUSED设置在当前使用块中必须存在的可用空间百分比, 当块中已使用的空间的比例小于这个百分比的时候,这个块才被标识为有效状态,并将其放入空闲列表中。只有有效的块才被允许插入数据。 在ORACLE9I以后,缺省为自动管理方式,ASSM废弃pctused属性。

说明 :假如向一个表中插入行。数据库检查该表的空闲列表,以查找第一个可用的块。

如果行无法容纳进该块中,并在块中已使用空间大于或等于pctused,则数据库将该表从空闲列表中移出,并搜索另一个块。如果从块中删除行,则数据库检查块中的已使用空间现在是否小于pctused。如果是,则数据库将该块置于空闲列表的开头。

--来源于oracle database concept

0