理解ASM的Extent
Posted 杨哥哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解ASM的Extent相关的知识,希望对你有一定的参考价值。
分类: Oracle
2017-04-14 10:19:44
ASM中分配空间的单位是AU,Extent包含1个或多个AU。
在11g之前,1个Extent对应1个AU。而从11.1.0开始,Oracle引入了Variable Sized Extents,ASM会根据文件的大小,自动决定Extent的大小,具体算法如下:
1、AU小于4MB的:
通过引入Variable Sized Extents,可以减少SGA的内存,并且提升性能。
我们来看看现实环境中Extent分配情况:
1、小数据文件
该数据文件只有790MB,按上述的分配规则,该数据文件的Extent=1*AU
上述信息显示,确实只有1AU这么一种情况。
2、较大的数据文件
该数据文件为24G,按上述的分配规则,该数据文件的Extent有两种情形:1AU和4AU
上述信息显示,实际分配情况是符合分配规则的。
在11g之前,1个Extent对应1个AU。而从11.1.0开始,Oracle引入了Variable Sized Extents,ASM会根据文件的大小,自动决定Extent的大小,具体算法如下:
1、AU小于4MB的:
- 头20000个Extent(0-19999,20GB),Extent大小=1*AU
- 之后的20000个Extent(20000-39999,20GB-40GB),Extent大小=4*AU
- 再往后的Extent(40000+,40GB以上),Extent大小=16*AU
通过引入Variable Sized Extents,可以减少SGA的内存,并且提升性能。
我们来看看现实环境中Extent分配情况:
1、小数据文件
FILE_NAME SIZE(MB) --------------------------------------------------------------------------- ---------- +DATA01/HERA/DATAFILE/system.258.940635333 790 |
该数据文件只有790MB,按上述的分配规则,该数据文件的Extent=1*AU
09:31:28 nolog> select distinct size_kffxp from x$kffxp where number_kffxp = 258; SIZE_KFFXP ---------- 1 |
上述信息显示,确实只有1AU这么一种情况。
2、较大的数据文件
FILE_NAME SIZE(MB) --------------------------------------------------------------------------- ---------- +DATA01/HERA/DATAFILE/test.363.941274405 24576 |
该数据文件为24G,按上述的分配规则,该数据文件的Extent有两种情形:1AU和4AU
09:03:51 nolog> select distinct size_kffxp from x$kffxp where number_kffxp = 363; SIZE_KFFXP ---------- 1 4 |
上述信息显示,实际分配情况是符合分配规则的。
以上是关于理解ASM的Extent的主要内容,如果未能解决你的问题,请参考以下文章
oracle中的表空间(tablespace)方案(schema)段(segment)区(extent)块(block)