理解local management tablespace的uniform和autoallocate的分配方式

本文探讨了Oracle本地管理表空间(LMT)的Uniform和Autoallocate分配方式。Uniform方式中,区的大小是固定的,而Autoallocate则动态分配。通过分析数据文件头的位图信息,可以了解这两种方式如何记录区的使用状态。10g之后,尽管LMT逐渐被淘汰,但理解其工作原理仍很重要,尤其是对回收站的管理和查询。
摘要由CSDN通过智能技术生成

本文内容主要参考: 老盖的《循序渐进 Oracle数据库管理,优化与备份恢复》

                                    以及博文 http://jolly10.itpub.net/post/7268/472662

1. 本地管理表空间的区大小分配方式

        表空间的管理方式主要有:本地管理和数据字典管理。本地管理采用在位图记录区的分配情况,而数据字典管理的方式采用字典表记录区的分配情况,本地管理方式从10g开始渐渐被淘汰。区作为基本分配单位分配给段时,其大小也有区别的。

create tablespace lmt_bmb
  datafile 'lmt_bmb' size 100M autoextend off
  logging
  permanent
  extent management local uniform size 1M --uniform方式,区大小固定为1M
  blocksize 8k
  segment space management manual --段管理方式确认后,将无法修改,之能重建
  flashback on;
 
 
create tablespace lmt_bmb_auto
  datafile 'lmt_bmb_auto.dbf' size 100M autoextend off
  logging permanent
  extent management local autoallocate  --autoallocate方式,区大小又系统自动分配
  blocksize 8k
  segment space management manual
  flashback on;
uniform方式按统一的区大小分配给段,而autoallocate方式会逐渐调整分配给段的大小。通过以下语句可以查询表空间的情况:

SQL> select tablespace_name, extent_management, allocation_type
  2  from dba_tablespaces;

TABLESPACE_NAME                EXTENT_MANAGEMENT ALLOCATION_TYPE
------------------------------ ----------------- ---------------
SYSTEM                         LOCAL             SYSTEM
SYSAUX                         LOCAL             SYSTEM
UNDOTBS1                       LOCAL             SYSTEM
TEMP                           LOCAL             UNIFORM
USERS                          LOCAL             SYSTEM
ADDDATA01                      LOCAL             SYSTEM
ADDDATA02                      LOCAL             SYSTEM
ADDINDX01                      LOCAL             SYSTEM
ADDINDX02                      LOCAL             SYSTEM
ADDTEMP01                      LOCAL             UNIFORM
UNDOTBS001                     LOCAL             SYSTEM
LMTS                           LOCAL             SYSTEM
LMT_BMB                        LOCAL             UNIFORM
LMT_BMB_AUTO                   LOCAL             SYSTEM

        

         system表示autoallocate方式,后续通过dump数据文件头来了解区的位图信息,以及区分配方式。


2. Uniform方式以及数据文件头的位图信息

SQL> create table test tablespace lmt_bmb as select * from dba_users where 1=0;
Table created
SQL> select tablespace_name, extent_id, block_id, blocks from dba_extents where tablespace_name = 'LMT_BMB';
TABLESPACE_NAME                 EXTENT_ID   BLOCK_ID     BLOCKS
------------------------------ ---------- ---------- ----------
LMT_BMB                                 0          9        128
Test表创建时是从block_i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值