CREATE SMALLFILE TABLESPACE "DATA" DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\data_01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE 1000M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTOoracle如何分配区(区管理)
dba_extents数据取自segment_header
EXTENT MANAGEMENT LOCAL
字典DMT
利用基表sys.fet$和sys.uset$记录区的使用情况。
- 1、频繁truncate/drop或insert时容易产生基表的争用。-2.SMON来不及合并之前容易产生很多碎片。
本地LMT
在数据文件中加入位图块来管理每个区。
oralce如何使用区(段管理)
SEGMENT SPACE MANAGEMENT AUTO
自动(ASSM)
利用位图块L1 BMB叶节点(直接管理块,16到1024个块),L2 BMB 枝节点,L3 BMB跟节点。大量DML操作也会引起位图块争用,解决方法是插入大量数据提高高水位线。
手动(MSSM)
利用free list, freelist groups,pctused控制如何分配段中的数据块。当进程需要大量的块分配,free list容易引起段头争用即buffer busy waits。
块结构
db_block_size 默认8k
结构
块头(地址、段类型)
所属表、表空间
事务槽ITL
行目录
数据行
行头信息(锁信息)
列宽+列数据
前4项在块中从前往后排列
行数据信息在块中由尾部向头部转移
行链接(一个块放不下,放俩快组织一个块)(只能修改块大小)
行迁移(更新数据时发现空间不够,用指针指向别的地方去了) 重新导入导出(重新整理表)
为何不把新数据全部放入新块?
保持rowid一直嘛,不然索引没得玩。
文章转载自木底木叉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




