一. 官网说明

Logical Storage Structures

http://download.Oracle.com/docs/cd/E11882_01/server.112/e16508/logical.htm#CNCPT7668

其中有关ASSM 的内容如下:

Logical Space Management

Oracle Database must use logical space management to track and allocate the extents in a tablespace. When a database object requires an extent, the database must have a method of finding and providing it. Similarly, when an object no longer requires an extent, the database must have a method of making the free extent available.

Oracle Database manages space within a tablespace based on the type that you create. You can create either of the following types of tablespaces:

·Locally managed tablespaces (default)

The database uses bitmaps in the tablespaces themselves to manage extents. Thus, locally managed tablespaces have a part of the tablespace set aside for a bitmap. Within a tablespace, the database can manage segments with automatic segment space management (ASSM)or manual segment space management (MSSM).

·Dictionary-managed tablespaces

The database uses thedata dictionaryto manage extents (see"Overview of the Data Dictionary").

Figure 12-3shows the alternatives for logical space management in a tablespace.

Figure 12-3 Logical Space Management

Description of "Figure 12-3 Logical Space Management"

Locally Managed Tablespaces

A locally managed tablespace maintains a bitmap in the data file header to track free and used space in the data file body. Each bit corresponds to a group of blocks. When space is allocated or freed, Oracle Database changes the bitmap values to reflect the new status of the blocks.

The following graphic is a conceptual representation of bitmap-managed storage. A1in the header refers to used space, whereas a0refers to free space.

A locally managed tablespace has the following advantages:

·Avoids using the data dictionary to manage extents

Recursive operations can occur in dictionary-managed tablespaces if consuming or releasing space in an extent results in another operation that consumes or releases space in a data dictionary table or undo segment.

·Tracks adjacent free space automatically

In this way, the database eliminates the need to coalesce free extents.

·Determines the size of locally managed extents automatically

Alternatively, all extents can have the same size in a locally managed tablespace and override object storage options.

Note:

Oracle strongly recommends the use of locally managed tablespaces with Automatic Segment Space Management.

Segment space managementis an attribute inherited from the tablespace that contains the segment. Within a locally managed tablespace, the database can manage segments automatically or manually. For example, segments in tablespaceuserscan be managed automatically while segments in tablespacetoolsare managed manually.

Automatic Segment Space Management

The ASSM method uses bitmaps to manage space. Bitmaps provide the following advantages:

·Simplified administration

ASSM avoids the need to manually determine correct settings for many storage parameters. Only one crucial SQL parameter controls space allocation:PCTFREE. This parameter specifies the percentage of space to be reserved in a block for future updates (see "Percentage of Free Space in Data Blocks").

ASSM 管理,只需要一个参数:PCTFREE

·Increased concurrency

Multipletransactionscan search separate lists of free data blocks, thereby reducing contention and waits. For many standard workloads, application performance with ASSM is better than the performance of a well-tuned application that uses MSSM.

·Dynamic affinity of space to instances in an Oracle Real Application Clusters (Oracle RAC) environment

ASSM is more efficient and is the default for permanent, locally managed tablespaces.

Note:

This chapter assumes the use of ASSM in all of its discussions of logical storage space.

Manual Segment Space Management

The legacy MSSM method uses a linked list called a free list to manage free space in the segment. For a database object that has free space, a free list keeps track of blocks under the high water mark (HWM), which is the dividing line between segment space that is used and not yet used. As blocks are used, the database puts blocks on or removes blocks from the free list as needed.

In addition toPCTFREE, MSSM requires you to control space allocation with SQL parameters such asPCTUSED,FREELISTS, andFREELIST GROUPS.PCTUSEDsets the percentage of free space that must exist in a currently used block for the database to put it on the free list. For example, if you setPCTUSEDto40in aCREATE TABLEstatement, then you cannot insert rows into a block in the segment until less than 40% of the block space is used.

As an illustration, suppose you insert a row into a table. The database checks a free list of the table for the first available block. If the row cannot fit in the block, and if the used space in the block is greater than or equal toPCTUSED, then the database takes the block off the list and searches for another block. If you delete rows from the block, then the database checks whether used space in the block is now less thanPCTUSED. If so, then the database places the block at the beginning of the free list.

An object may have multiple free lists. In this way, multiple sessions performing DML on a table can use different lists, which can reduce contention. Each database session uses only one free list for the duration of its session.

As shown inFigure 12-4, you can also create an object with one or more free list groups, which are collections of free lists. Each group has a master free list that manages the individual process free lists in the group. Space overhead for free lists, especially for free list groups, can be significant.

Figure 12-4 Free List Groups

Description of "Figure 12-4 Free List Groups"

Managing segment space manually can be complex. You must adjustPCTFREEandPCTUSEDto reduce row migration (see"Chained and Migrated Rows") and avoid wasting space. For example, if every used block in a segment is half full, and ifPCTUSEDis 40, then the database does not permit inserts into any of these blocks. Because of the difficulty of fine-tuning space allocation parameters, Oracle strongly recommends ASSM. In ASSM,PCTFREEdetermines whether a new row can be inserted into a block, but it does not use free lists and ignoresPCTUSED.

-- ASSM 会忽略PCTUSED 参数

Dictionary-Managed Tablespaces

oracle自管理段,Oracle 自动段空间管理(ASSM:auto segment space management)相关推荐

  1. Oracle 自动段空间管理(ASSM:auto segment space management)

    一. 官网说明 Logical Storage Structures http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/lo ...

  2. oracle 空间 链接,Oracle 自动段空间管理(ASSM:auto segment space management)

    二. ASSM说明 在Orale 9i以前,表的剩余空间的管理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此容易引起往往容易引起段头的争用与空间的浪费(其实这一点 ...

  3. oracle还原system备份包,SYSTEM表空间管理及备份恢复

    --============================= -- SYSTEM 表空间管理及备份恢复 --============================= SYSTEM表空间是Oracl ...

  4. oracle 自动sga,Oracle实用脚本 : 收集自动SGA内存管理ASMM诊断信息

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下脚本可以用于收集自动SGA(sga_target>0)内存管理ASMM下的实例诊断信息: spool auto_sga_diag.log set ...

  5. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念(未看)

    本地管理表空间(LMT)与自动段空间管理(ASSM)概念 创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management ...

  6. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念

    创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent ...

  7. oracle实现分段,用Oracle分段空间管理功能改进数据库性能

    如果Oracle数据库表出现大量碎片数据,则会浪费磁盘空间和严重影响性能.这时可以使用Oracle分段空间管理功能,特别是Oracle数据库分段压缩功能. 更新或删除表的记录,会在数据块中形成许多的空 ...

  8. oracle 11g初始段大小,Oracle 11g配置调优,一般需要注意哪些方面呢?

    一 创建数据库必须遵循的原则 1.强制数据库中创建的每一个表空间必须是本地管理. extent management local定义本地表空间. 2.确保数据库为每个用户自动分配一个默认的永久表空间. ...

  9. 【ORACLE 高可用】ORACLE STREAM 基于用户的流复制配置 案例

    基于用户的流复制配置 案例 主数据库: 操作系统:REDHAT 5 IP地址:192.168.10.87 数据库:Oracle 11.2.0.3 ORACLE_SID:DB1 Global_name: ...

最新文章

  1. linux下occi操作oracle数据库,中文乱码的问题
  2. ListView中的图片异步加载、缓存
  3. listview 的 selection mode 训练小例子
  4. 部署Lync For 移动设备 二
  5. logstash异常
  6. C# 观察文件的更改
  7. [Java基础]字节缓冲流
  8. python2和3_python2和python3的区别
  9. 学python编程好就业吗_学好python编程就业真的没有压力吗?
  10. 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
  11. 从数据传输速率的视角思考信道利用率
  12. python函数参数是数据库表名_Python-sqlite中的变量表名称
  13. 详解解决CAS机制中ABA问题的AtomicStampedReference
  14. 电力猫服务器的网页,电力猫是如何工作的?
  15. Roman to Integer:转换罗马数字到阿拉伯数字
  16. Facebook广告投放有哪些比较好的策略?
  17. Scratch软件编程等级考试二级——20210320
  18. java 生成电子合同_java实现电子合同签名
  19. 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘
  20. 多项目同时进行,如何做好项目管理?

热门文章

  1. Keka for Mac(压缩解压工具)中文破解版
  2. Kotlin+Netty实现首次连接url鉴权
  3. 当你的Python代码抛出错误,首先应该看这里!
  4. 数字图像处理(修正的阿尔法均值滤波)
  5. 读取多个文件fgets并输出,每输出2行加一空行,static局部变量
  6. 用Python掷骰子——打麻将没骰子还要出去买?
  7. python3鼠标检测_python2.7一步步实现键盘和鼠标检测
  8. Android Studio 开发NDK项目生成.h文件方法
  9. Polyworks脚本开发学习笔记(三)-TREEVIEW进阶操作
  10. 计算机二级长文档排版素材,常文档排版(按照计算机二级考试试题顺序编写).doc...