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. hdu 4674 Trip Advisor(缩点+倍增lca)

    花了一天半的时间,才把这道题ac= = 确实是道好题,好久没敲这么长的code了,尤其是最后的判定,各种销魂啊~ 题目中给出的条件最值得关注的就是:每个点最多只能在一个环内->原图是由一个个边连 ...

  2. OK335xS psplash 进度条工作原理 hacking

    #!/bin/sh # # rc This file is responsible for starting/stopping # services when the runlevel changes ...

  3. 【 D3.js 高级系列 — 8.0 】 标线

    有时候,需要在地图上绘制连线,表示"从某处到某处"的意思,这种时候在地图上绘制的连线,称为"标线". 1. 标线是什么 标线,是指地图上需要两个坐标以上才能表示 ...

  4. temp - Linux administration handbook 答案

    我开始做第一章后的练习题,发觉不是很容易随意地回答,就像是C++ primer之后的练习题的感觉. 自己有这么多不会的,让我感觉很不爽啊- -! 先不要要求自己一下子都明了,一口吃不成胖子,先找一份工 ...

  5. Vagrant搭建Ubuntu-JavaEE开发环境——Tomcat+JDK+MySQL+dubbo+测试

    Vagrant搭建(Tomcat8+JDK7+MySQL5+dubbo) JDK 1.下载jdk 2.解压JDK tar -xzvf jdk-7u79-linux-x64.tar.gz 3.设置环境变 ...

  6. 【DFS,双向】NYOJ-20-吝啬的国度

    [题目链接:NYOJ-20] 很巧妙,要好好想想 #include <iostream> #include <stdio.h> #include <vector> ...

  7. 【转】开始iOS 7中自动布局教程(一)

    原文网址:http://www.cocoachina.com/industry/20131203/7462.html 原文:Beginning Auto Layout Tutorial in iOS ...

  8. Apache OFBiz 学习笔记 之 实体引擎

    1.概述     entity engine和常见的ORM有一点很大的不同,他的mapping object只有一个 GenericEntity,称它的entity engine 为adaptive ...

  9. Linux操作系统上用数据泵导库

    1.在Linux上 创建物理目录dp_dir,存放数据库.dmp文件: 用root用户登录,切换到oracle用户,用oralce身份创建物理目录如下: [root@server36 oracle]# ...

  10. WCF启用Session

    1 服务类添加ASPNETSESSION兼容标记 [System.ServiceModel.Activation.AspNetCompatibilityRequirements(Requirement ...