extent autoallocate分配时,表是如何分配空间
来源:互联网 发布:射手播放器 for mac 编辑:程序博客网 时间:2024/05/16 18:27
原文地址: http://blog.itpub.net/35489/viewspace-84692
--------------------
SQL>create tablespace demo datafile 'd:oracleoradataenzdemo01.dbf' size 2048M
extent management local autoallocate segment space management manual;
在这个表空间上分别创建下面的表:
create table SPACE_auto as select * from all_objects
tablespace DEMO;
tablespace DEMO;
表space_auto实际空间分配策略
/*先分配16个64K的extent,
0-15 extents 每个大小是64K 合计大小 1M
16-79 extents 每个大小是1M 合计大小 63M --以上两项大小合计 64M
80-199 extents 每个大小是8M 合计大小 960M --以上三项大小合计 1024M=1G
200-?? extents 每个大小是64M
*/
create table SPACE_1M as select * from all_objects
tablespace DEMO
storage
(
initial 1M
next 1M --忽略
minextents 1
maxextents unlimited
);
tablespace DEMO
storage
(
initial 1M
next 1M --忽略
minextents 1
maxextents unlimited
);
实际空间分配策略 /*先分配16个64K的extent,然后是1M的extent */
create table SPACE_8M as select * from all_objects
tablespace DEMO
storage
(
initial 8M
next 8M --忽略
minextents 1
maxextents unlimited
);
实际空间分配策略 /*初始分配8个1M的extent */
create table SPACE_32M as select * from all_objects
tablespace DEMO
storage
(
initial 32M
next 32M --忽略
minextents 1
maxextents unlimited
);
tablespace DEMO
storage
(
initial 32M
next 32M --忽略
minextents 1
maxextents unlimited
);
实际空间分配策略/*初始分配32个1M的extent */
create table SPACE_64M as select * from all_objects
tablespace DEMO
storage
(
initial 64M
next 32M --忽略
minextents 1
maxextents unlimited
);
create table SPACE_64M as select * from all_objects
tablespace DEMO
storage
(
initial 64M
next 32M --忽略
minextents 1
maxextents unlimited
);
实际空间分配策略/*初始分配64个1M的extent */
========================================================================================================
create table SPACE_128M
as select * from all_objects
tablespace DEMO
storage
(
initial 128M
next 128M --忽略
minextents 1
maxextents unlimited
);
create table SPACE_128M
as select * from all_objects
tablespace DEMO
storage
(
initial 128M
next 128M --忽略
minextents 1
maxextents unlimited
);
/*初始分配规律如下
extent0 =8M
extent 1-49=1M
extent 50-170 =8M
extent 171 开始 extent=64M
可以看到当segment大小=8+49+121*8=1025M>1G时,开始分配64M大小的extents
可以看到当segment大小=8+49+121*8=1025M>1G时,开始分配64M大小的extents
*/
以上结果都是针对数据库版本 9.2.0.8 for windows,demo表空间是Local & Autoallocate来分配的。
以上结果都是针对数据库版本 9.2.0.8 for windows,demo表空间是Local & Autoallocate来分配的。
对于10.2.0.2版本的oracle,分配规律有变化了,
create table SPACE_128M as select * from all_objects
tablespace DEMO
storage
(
initial 128M
next 128M --忽略
minextents 1
maxextents unlimited
);
create table SPACE_128M as select * from all_objects
tablespace DEMO
storage
(
initial 128M
next 128M --忽略
minextents 1
maxextents unlimited
);
/*初始分配规律如下
extent0-127=8M 128×8M=1G extent 128=64M,
也就segment大于1G,那么分配64M extent */
可以看到,oracle10g的分配更科学点。
可以看到,oracle10g的分配更科学点。
总结:使用autoallocate方式分配表使用的空间时,当segment的大小大于1G时,oracle开始分配64M的extents。
阅读全文
0 0
- extent autoallocate分配时,表是如何分配空间
- extents分配策略及AUTOALLOCATE碎片问题
- 空间分配
- 单片机内程序运行的时候ram空间是如何分配的?
- 可分配的空间分配
- 函数调用时堆栈是如何分配的
- 操作系统执行可执行程序时,内存是如何分配的?
- Malloc是如何分配内存的?
- 理解local management tablespace的uniform和autoallocate的分配方式
- 表空间uniform size和 autoallocate的区别
- 当new分配空间失败时
- 栈上分配空间时的限制
- 表空间的初始大小分配
- oracle创建表空间、用户、分配权限
- oracle 创建表空间和分配用户权限
- Oracle 为用户分配表空间
- 创建表空间、用户、分配权限
- oracle创建表空间并分配用户
- Ubuntu下vs code 中出现cannot open source file "iostream"
- SAP FIORI for iOS
- 详解js的六大数据类型
- java心得(日历)
- Retrofit网络请求+GreenDao数据缓存
- extent autoallocate分配时,表是如何分配空间
- Jquery-选择器
- kubeadm搭建kubernetes集群之三:加入node节点
- oracle-- 数据更新操作和事务操作
- SpringMVC 重定向和请求转发
- POJ 1185 炮兵阵地(状态压缩DP)
- RxJava2.0的使用代码
- 自定义---轮播
- 半平面交