暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 区的一般说明

原创 不吃草的牛_Nick 2023-02-27
324

盘区
盘区是数据库中的下一级逻辑空间分配,它是为特定类型对象(如表或索引)分配的特定数 量的块。盘区是一次分配的最小块数量,当某个盘区中的空间已满时,分配另一个盘区。

创建表时,分配一个初始盘区。一旦用完初始盘区中的空间,则分配更多的盘区。在本地 管理的表空间中,这些后续盘区可以是相同的大小(在创建表空间时使用UNIFORM关键字)或 通过Oracle优化的大小(AUTOALLOCATE).对于具有优化大小的盘区,Oracle首先使用最小 盘区大小64KB(8*8KB),并且在段增长时按初始盘区大小的倍数增加随后盘区的大小。通过这种方法, 实际上就消除了表空间的存储碎片。

当Oracle自动调整盘区的大小时,使用存储参数INITIAL, NEXT, PCTINCREASE和 MINEXTENTS作为指导原则,并且使用Oracle的内部算法来确定最佳的盘区大小。在下面的 示例中,USERS表空间(在安装新数据库期间,启用AUTOALLOCATE创建USERS表空间)中创建的表不会使用在create table语句中指定的存储参数:
create table t_autoalloc (cl char(2000)) storage (initial 1m next 2m pctincrease 50) tablespace users;

begin
for i in 1..3000 loop
insezt into t_autoalloc values('a');
end loop;
end;
/

select segment_name,extend_id,bytes,blocks from user_extents where segment_name='T_AUTOALLOC';
T_AUTOALLOC 0 65536 8
T_AUTOALLOC 1 65536 8
...
T_AUTOALLOC 15 65536 8
T_AUTOALLOC 16 1048576 128
T_AUTOALLOC 22 1048576 128

除非截取或删除表,否则任何分配给盘区的块都会保持分配给该表,即使已经删除表中的 所有行。分配给表的最大块数量称为“高水位标志(High Water Mark, HWM)”。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论