动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.配置RMAN恢复目录.
.如何将 Access 数据导出到 Oracl.
.在Oracle中实现搜索分页查询.
.Enterprise Library-Data Block .
.从SCN看热备份的原理.
.ORACLE 数据库备份技术.
.设置TOMCAT PATH,CLASSPATH变量.
.Oracle和SQL Server浅析.
.ORACLE 7.3.4.2 for SCO Unix 安.
.Oracle数据库处理身份管理解决方.
.在Windows2000环境中删掉单个Ora.
.Oracle主要的配置文件解释.
.RedHatLinux AS3 U2 安装 oracle.
.Oracle数据库中主要配置文件的经.
.怎样自动将数据导入 Oracle数据库.
.Oracle和DB2的联机热备份比较.
.Oracle 8x中监控sysdba角色用户登.
.在ORACLE中利用角色增强应用系统.
.ORACLE SQL性能优化系列(四).
.如何学习Oracle?.

ASSM内部存储研究大揭密

发表日期:2008-2-9 |



  因为ASSM的官方文档很少,经过多次的查证之后,终于弄明白了ASSM治理(BMB段治理)的内部机理,现在发表给大家共享,此文版权所有,严禁转载!!!!!!
  
  因为资料有限,假如有错误,请大家指正
  
  为了进一步让大家明白ASSM,先说明ASSM的基本情况!
  -----------------------------------------------------------------------------------------------------
  在920以前,表的剩余空间的治理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此轻易引起往往轻易引起段头的争用与空间的浪费(其实这一点并不明显),最主要的还是因为需要DBA 花费大量的精力去治理这些争用并监控表的空间利用。
  自动段空间治理(ASSM),它首次出现在Oracle920里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地治理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。
  
  让我们看看位图freelist是如何实现的。我会从使用区段空间治理自动参数创建tablespace开始:
  
  create tablespace demo
  datafile '/ora01/oem/demo01.dbf '
  size 5m
  EXTENT MANAGEMENT LOCAL -- Turn on LMT
  SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
  
  一旦你定义好了tablespace,那么表和索引就能够使用各种方法很轻易地被移动到新的tablespace里,带有ASSM的本地治理tablespace会略掉任何为PCTUSED、NEXT和FREELISTS所指定的值。
  
  当表格或者索引被分配到这个tablespace以后,用于独立对象的PCTUSED的值会被忽略,而Oracle9i会使用位图数组来自动地治理tablespace里表格和索引的freelist。对于在LMT的tablespace内部创建的表格和索引而言,这个NEXT扩展子句是过时的,因为由本地治理的tablespace会治理它们。但是,INITIAL参数仍然是需要的,因为Oracle不可能提前知道初始表格加载的大小。对于ASSM而言,INITIAL最小的值是三个块。
  
  新的治理机制用位图来跟踪或治理每个分配到对象的块,每个块有多少剩余空间根据位图的状态来确定,如>75%,50%-75%,25%-50%和<25%,也就是说位图其实采用了四个状态位来代替以前的pctused,什么时候该利用该数据块则由设定的pctfree来确定。
  
  使用ASSM的一个巨大优势是,位图freelist肯定能够减轻缓冲区忙等待(buffer busy wait)的负担,这个问题在Oracle9i以前的版本里曾是一个严重的问题,在没有多个freelist的时候,每个Oracle表格和索引在表格的头部都曾有一个数据块,用来治理对象所使用的剩余区块,并为任何SQL插入声明所创建的新数据行提供数据块。当数据缓冲内的数据块由于被另一个DML事务处理锁定而无法使用的时候,缓冲区忙等待就会发生。当你需要将多个任务插入到同一个表格里的时候,这些任务就被强制等待,而同时Oracle会在同时分派剩余的区块,一次一个。
  
  有了ASSM之后,Oracle宣称显著地提高了DML并发操作的性能,因为(同一个)位图的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。根据Oracle的测试结果,使用位图freelist会消除所有分段头部(对资源)的争夺,还能获得超快的并发插入操作
  尽管ASSM显示出了令人激动的特性并能够简化Oracle DBA的工作,但是Oracle9i的位图分段治理还是有一些局限性的:
  
  • 一旦DBA被分配之后,它就无法控制tablespace内部的独立表格和索引的存储行为。
  • 大型对象不能够使用ASSM,而且必须为包含有LOB数据类型的表格创建分离的tablespace。
  • 你不能够使用ASSM创建临时的tablespace。这是由排序时临时分段的短暂特性所决定的。
  • 只有本地治理的tablespace才能够使用位图分段治理。
  • 使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的时候可能会出现性能上的问题。
  
  ASSM到底是怎么回事,表是怎么结构的呢?
  ----------------------------------------------------------------------------------
  要害字:ASSM,自动段治理
  BMB Segment 位图块段治理
  
  1、我们先创建一个本地治理的表空间,采用段自动治理方式
  create tablespace demo
  datafile '/ora01/oem/demo01.dbf '
  size 50m
  EXTENT MANAGEMENT LOCAL     --一定是本地治理
  SEGMENT SPACE MANAGEMENT AUTO; --ASSM治理的标志
  
  2、创建同样一个表
  SQL> create table demotab ( x number ) tablespace demo
  storage (initial 1000K);
  Table created
  我们指定初试区间大小是1000K
  
  SQL> select t.table_name,t.initial_extent,t.next_extent,t.pct_free,t.pct_used from user_tables t where t.table_name = 'DEMOTAB';
  TABLE_NAME INITIAL_EXTENT NEXT_EXTENT PCT_FREE PCT_USED
  ------------------------------ -------------- ----------- ---------- ----------
  DEMOTAB         1024000          10
  可以看到,NEXT_EXTENT与PCT_USED都为空。

  
  3、执行该过程,检查表的初始状态
  SQL> exec show_space('demotab');
  Total Blocks............................128
  Total Bytes.............................1048576
  Unused Blocks...........................125
  Unused Bytes............................1024000
  Last Used Ext FileId....................7
  Last Used Ext BlockId...................8
  Last Used Block.........................3
  
  从这里我们能看到一些该表的特性,其中最引人注重的就是表头了,占用了三个块的大小(128-125)
  另外一个注重的地方就是该表从第8个块开始,但是实际上这里是错误的,应当是从第9个块开始,文件头占用了64K的空间等于8个块。
  
  我们从dba_extent中也能看到这样的信息,实际上是从第9个块开始的。
  
  SQL> select t.segment_name,t.extent_id,t.block_id from dba_extents t where t.segment_name = 'DEMOTAB';
  SEGMENT_NAME EXTENT_ID BLOCK_ID
  -------------------------------------------------------------------------------- ---------- ----------
  DEMOTAB 0 9
  DEMOTAB 1 17
  ……
  从这里可以看到,第一个区间的开始块是9
  
  4、我直接开始分析第9,10,11个块(段头)
  SQL> alter system dump datafile 7 block 9;
  System altered
  SQL> alter system dump datafile 7 block 10;
  System altered
  SQL> alter system dump datafile 7 block 11;
  System altered
  
  Start dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9
  buffer tsn: 6 rdba: 0x06800009 (7/9)
  scn: 0x0000.00181a2c seq: 0x01 flg: 0x04 tail: 0x1a2c2001
  frmt: 0x02 chkval: 0x30a6 type: 0x20=FIRST LEVEL BITMAP BLOCK
  Dump of First Level Bitmap Block
  --------------------------------
  nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 0
  unformatted: 13 total: 16 first useful block: 3
  owning instance : 1
  instance ownership changed at
  Last sUCcessful Search
  Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0
  
  Extent Map Block Offset: 4294967295
  First free datablock : 3
  Bitmap block lock opcode 0
  Locker xid: : 0x0000.000.00000000
  Highwater:: 0x0680000c ext#: 0 blk#: 3 ext size: 8
  #blocks in seg. hdr's freelists: 0
  #blocks below: 0
  mapblk 0x00000000 offset: 0
  HWM Flag: HWM Set
  --------------------------------------------------------
  DBA Ranges :
  --------------------------------------------------------
  0x06800009 Length: 8 Offset: 0
  0x06800011 Length: 8 Offset: 8
  
  0:Metadata 1:Metadata 2:Metadata 3:unformatted
  4:unformatted 5:unformatted 6:unformatted 7:unformatted
  8:unformatted 9:unformatted 10:unformatted 11:unformatted
  12:unformatted 13:unformatted 14:unformatted 15:unformatted
  --------------------------------------------------------
  End dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9
  
  Start dump data blocks tsn: 6 file#: 7 minblk 10 maxblk 10
  buffer tsn: 6 rdba: 0x0680000a (7/10)
  scn: 0x0000.00181a39 seq: 0x01 flg: 0x04 tail: 0x1a392101
  frmt: 0x02 chkval: 0x2738 type: 0x21=SECOND LEVEL BITMAP BLOCK
  Dump of Second Level Bitmap Block
  number: 8 nfree: 8 ffree: 0 pdba: 0x0680000b
  opcode:0
  xid:
  L1 Ranges :
  --------------------------------------------------------
  0x06800009 Free: 5 Inst: 1
  0x06800019 Free: 5 Inst: 1
  0x06800029 Free: 5 Inst: 1
  0x06800039 Free: 5 Inst: 1
  0x06800049 Free: 5 Inst: 1
  0x06800059 Free: 5 Inst: 1
  0x06800069 Free: 5 Inst: 1< right">(出处:清风软件下载学院)
上一篇:Bitmap Index 的一点探究 人气:465
下一篇:Oracle9i Database 自调整:Oracle SGA(下) 人气:333
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵