oracle中extents存在的理由
extents的特性:
1:一个extent由相连的多个blocks组成,多个extents组成一个segment,
2:oracle在为segment分配空间时,是以extent为单位
因此extents带来的好处:
1:空间分配、释放效率将会提升
oracle建议一个segment的extents数量一般不要超过1024,而对于big table可能包含上千万个block,如果没有extent,那么oracle就要分配上千万个block,而有了extent,只要分配上千个extents就行。extent表示大量的blocks效率很高,extent并不列出所有的block,而是列出起始两个block(因为extent是联系的,起始block就能定位一个extent),oracle分配空间的时间与extents的数目呈比例,与blocks数目没有很大关系。同理,在释放空间时,extent一样可以提高操作的效率。
对字典管理的表空间,extent作用很明显,如果没有extent,数据字典中必须记录各个block,如果big table占用上千万个block,那么数据字典也会大量占用,假设数据字典会占用上百万个block,分配或释放这些big table时,还要对这些上百万block的数据字典插入会删除,岂不会额外添加很多工作,
2:全表扫描
在进行全表扫描时,利用extent包含联系blocks的特性,可以一次读出多个字段,这样就能大大减少物理IO,极大提高扫描的效率。
every thing has two side
extent带来的负面作用:
表空间碎片:
如果没有extent,oracle在给segment分配空间时以block为单位,而block总是一样大的,典型的8k,16k,这时每个block都可以得到利用。有了extent,extent就是最小的分配单元,而extent的大小并不总是相等的,假设开始的的三个segment都很小,extent也不大,例如10个blocks,如果第二个的segment释放后,在中间的那个10block就空闲出来,但是如果以后segment都要求分配至少20个block的extent时,那么这10blocks的空闲空间就得不到利用,在极端情况下,表空间由1000个10block的空闲,但无法分配20block的extent。exp/imp能消除碎片,本地管理的表空间对连续的碎片有自动处理的能力,但对不连续的碎片无能为力。
最新文章
- linux shell if
- one_person年轻的程序员
- opencv png和jpg的叠加
- Codeforces Round #243 (Div. 2) C. Sereja and Swaps
- 从零开始学习Node.js例子四 多页面实现数学运算
- 抓包工具Charles 【转】
- 再看.net本质(二)
- linux软中断与硬中断实现原理概述
- bzoj 2595 [Wc2008]游览计划(斯坦纳树)
- bzoj 1090 [SCOI2003]字符串折叠(区间DP)
- uva 1396 - Most Distant Point from the Sea
- 在linux系统下怎么安装两个nginx
- HDU 5044 离线LCA算法
- 九章算法系列(#3 Binary Tree &; Divide Conquer)-课堂笔记
- sqlite数据库常用语句
- OpenAL
- HDOJ 1043 Eight(A* 搜索)
- DWR3.0框架入门(2) —— DWR的服务器推送
- centos 7 部署 open-falcon 0.2.0
- vue2.0 样式表引入的方法 css sass less
热门文章
- Swift入门篇-Hello World
- Android粘贴板的运用
- 【JSP】JSP向MySQL写入|读出中文数据——乱码问题
- 【DFS】NYOJ-325-zb的生日
- chrome console js多行输入
- System Services ->; Memory Management ->; About Memory Management
- 只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果
- Json::Value使用心得
- Perfect Service
- javascript AES加密 C#AES解密实现