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能消除碎片,本地管理的表空间对连续的碎片有自动处理的能力,但对不连续的碎片无能为力。

oracle中extents存在的理由的更多相关文章

  1. Oracle中HWM与数据库性能的探讨

    Oracle中HWM与数据库性能的探讨 一.什么是高水位 HWM(high water mark),高水标记,这个概念在segment的存储内容中是比较重要的.简单来说,HWM就是一个segment中 ...

  2. Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?

    Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程?   麦苗答:方法有多种,可以使用DBMS_MET ...

  3. Oracle 中常用数据字典大总结

    原文出处:小宝马的爸爸 - 梦想的家园 前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容, 对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得 ...

  4. 转-oracle中比较两表表结构差异和数据差异的方法

    oracle中比较两表表结构差异和数据差异的方法 原作者:li2008xue2008ling  出处:http://blog.csdn.net       在工作中需要完成这么一个需求:比较两个表的表 ...

  5. Oracle中 HWM与数据库性能的探讨

    链接:http://www.eygle.com/archives/2011/11/oracle_hwm_tuning.html 本文讨论的是oracle中关于table的HWM的内容,主要包括这样几个 ...

  6. 问题:oracle CLOB类型;结果:oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  7. Oracle中的数据字典技术及常用数据字典总结

    一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行 ...

  8. Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述

    --varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个 ...

  9. Oracle中如何实现Mysql的两表关联update操作

    在看<MySQL 5.1参考手册>的时候,发现MySQL提供了一种两表关联update操作.原文如下: UPDATE items,month SET items.price=month.p ...

随机推荐

  1. 纯CSS3带动画效果导航菜单

    随着互联网的发展,网页能表现的东西越来越多.由最开始单纯的文字和链接构成的网页,到后来的表格布局,再到div+css模式,现在发展到了html+css3.网页能表达的东西越来越多,css3兴起已经很多 ...

  2. acdream 1210 Chinese Girls' Amusement (打表找规律)

    题意:有n个女孩围成一个圈从第1号女孩开始有一个球,可以往编号大的抛去(像传绣球一样绕着环来传),每次必须抛给左边第k个人,比如1号会抛给1+k号女孩.给出女孩的人数,如果他们都每个人都想要碰到球一次 ...

  3. 修改placeholder属性

    input::-webkit-input-placeholder{ font-size:12px;}input:-ms-input-placeholder{ font-size:12px;}input ...

  4. Linux Shell 脚本

    1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`do       factorial=`expr $factorial \* $a ...

  5. 我的web前端之路 分享些前端的好书(转)

    WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正规教育,大多数人都是靠自己自学成才.本文主要介绍自己从事web开发以来 (从大二至今)看过的书籍和自己的成长过程,目的是给想了解Jav ...

  6. 在PHP中如何获取用户的真实IP

    /** * 获得用户的真实IP地址 * * @access public * @return string */ function real_ip() { static $realip = NULL; ...

  7. 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(3)

    运行ElasticSearch(Running ElasticSearch) 让我们运行我们的第一个实例.转到bin目录并从命令行运行以下命令: ./elasticsearch –f (Linux o ...

  8. <转>python version 2.7 required,which was not found in the registry

    安装PIL-1.1.7.win32-py2.7的时候,不能再注册表中识别出来python2.7 方法:新建一个register.py 文件,把一下代码贴进去,保存 # # script to regi ...

  9. 常见设计模式解析和实现(C++)Prototype模式(原型模式)

    作用:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. UML结构图: 抽象基类: 1)  Prototype:虚拟基类,所有原型的基类,提供Clone接口函数 接口函数: 1)  P ...

  10. Nginx + PHP 缓存详解

    Nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态 ...