动态网站制作指南 [  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教程 ]的信息

本月文章推荐
.在RedHat 7.0下Oracle 8.1.6 的安.
.给Oracle数据库打补丁.
.关于关系数据库主键的讨论.
.关于数据备份与恢复的定义和重要.
.Oracle 有关Linux常见问题的详细.
.Oracle笔记.
.如何移动控制文件到新的目录中?.
.PLSQL单行函数和组函数详解.
.ORACLE常见错误代码的分析与解决.
.Oracle数据库复制常用脚本.
.Oracle数据库在网格计算中的应用.
.Oracle数据库技术(24).
.在sqlplus中批量执行sql命令.
.Oracle9i Database 自调整:Oracl.
.本人编写的两个Oracle的帮助小工.
.在Linux下的Oracle 用脚本建库实.
.讲解Oracle数据库的sysdba权限登.
.Oracle Database 10 g : 为 DBA .
.Oracle FAQ 2003.02精华.
.在一台机器配置两个listener(Ora.

LMT下表FREELIST的初步探索

发表日期:2008-2-9 |



  由于LMT下不再具有freelist参数,但理解了freelist的作用后都知道,这是难以通过其他途径来解决的,freelist本身的作用不可抹杀,具有很多的好处,据说Oracle其中一个副总裁当初是一个程序员,就是因为在 空间治理和分配算法中的出色表现而平步青云的, 其中最重要的一环就是 freelist 的设计
  废话不说了
  
  根据两个表(LMT0,LMT1)的实验可以看出:
  
  SQL> begin
  2 for i in 1..10000 loop
  3 insert into lmt0 values(i);
  4 end loop;
  5 end;
  6 /
  
  我们这时来看 segment header :
  
  *** 2003-02-18 10:07:19.984
  Start dump data blocks tsn: 7 file#: 8 minblk 9 maxblk 9
  buffer tsn: 7 rdba: 0x02000009 (8/9)
  scn: 0x0000.0008dc4a seq: 0x03 flg: 0x00 tail: 0xdc4a1003
  frmt: 0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
  
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0 space2: 0 #extents: 4 #blocks: 63
  last map 0x00000000 #maps: 0 offset: 4128
  Highwater:: 0x02000023 ext#: 1 blk#: 10 ext size: 16
  #blocks in seg. hdr's freelists: 10
  #blocks below: 25
  mapblk 0x00000000 offset: 1
  Unlocked
  Map Header:: next 0x00000000 #extents: 4 obj#: 25098 flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
  0x0200000a length: 15
  0x02000019 length: 16
  0x02000029 length: 16
  0x020000d9 length: 16
  
  nfl = 1, nfb = 1 typ = 1 nxf = 0
  SEG LST:: flg: USED lhd: 0x02000019 ltl: 0x02000022
  End dump data blocks tsn: 7 file#: 8 minblk 9 maxblk 9
  
  我们发现:
  #blocks in seg. hdr's freelists: 10 freeslit从0变成了10,
  但暂时只有一个freelist被使用: SEG LST:: flg: USED lhd: 0x02000019 ltl: 0x02000022
  
  再看另一个表:
  
  SQL> insert into lmt1 select rownum from all_objects;
  
  已创建24746行。
  
  SQL> commit;
  
  Start dump data blocks tsn: 7 file#: 8 minblk 57 maxblk 57
  buffer tsn: 7 rdba: 0x02000039 (8/57)
  scn: 0x0000.0008dc60 seq: 0x02 flg: 0x00 tail: 0xdc601002
  frmt: 0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
  
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0 space2: 0 #extents: 10 #blocks: 159
  last map 0x00000000 #maps: 0 offset: 4128
  Highwater:: 0x02000063 ext#: 2 blk#: 10 ext size: 16
  #blocks in seg. hdr's freelists: 4
  #blocks below: 41
  mapblk 0x00000000 offset: 2
  Unlocked
  Map Header:: next 0x00000000 #extents: 10 obj#: 25099 flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
  0x0200003a length: 15
  0x02000049 length: 16
  0x02000059 length: 16
  0x02000069 length: 16
  0x02000079 length: 16
  0x02000089 length: 16
  0x02000099 length: 16
  0x020000a9 length: 16
  0x020000b9 length: 16
  0x020000c9 length: 16
  
  nfl = 1, nfb = 1 typ = 1 nxf = 0
  SEG LST:: flg: USED lhd: 0x0200005f ltl: 0x02000062
  End dump data blocks tsn: 7 file#: 8 minblk 57 maxblk 57
  
  我们发现这样插入的时候,
  
  #blocks in seg. hdr's freelists: 4
  
  SEG LST:: flg: USED lhd: 0x0200005f ltl: 0x02000062
  
  再继续插入:
  
  SQL> begin for i in 1..10000 loop
  2 insert into lmt1 values(i);
  3 end loop;
  4 end;
  5 /
  
  PL/SQL 过程已成功完成。

  
  这个时候再看segment header:
  
  Start dump data blocks tsn: 7 file#: 8 minblk 57 maxblk 57
  buffer tsn: 7 rdba: 0x02000039 (8/57)
  scn: 0x0000.0008dcbc seq: 0x01 flg: 0x00 tail: 0xdcbc1001
  frmt: 0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
  
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0 space2: 0 #extents: 10 #blocks: 159
  last map 0x00000000 #maps: 0 offset: 4128
  Highwater:: 0x02000073 ext#: 3 blk#: 10 ext size: 16
  #blocks in seg. hdr's freelists: 5
  #blocks below: 57
  mapblk 0x00000000 offset: 3
  Unlocked
  Map Header:: next 0x00000000 #extents: 10 obj#: 25099 flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
  0x0200003a length: 15
  0x02000049 length: 16
  0x02000059 length: 16
  0x02000069 length: 16
  0x02000079 length: 16
  0x02000089 length: 16
  0x02000099 length: 16
  0x020000a9 length: 16
  0x020000b9 length: 16
  0x020000c9 length: 16
  
  nfl = 1, nfb = 1 typ = 1 nxf = 0
  SEG LST:: flg: USED lhd: 0x0200006e ltl: 0x02000072
  End dump data blocks tsn: 7 file#: 8 minblk 57 maxblk 57
  *** 2003-02-18 10:21:23.171
  
  我们发现:
  #blocks in seg. hdr's freelists: 5
  SEG LST:: flg: USED lhd: 0x0200006e ltl: 0x02000072
  
  这个时候找到 lhd: 0x0200006e 这个块来看:
  Start dump data blocks tsn: 7 file#: 8 minblk 110 maxblk 110
  buffer tsn: 7 rdba: 0x0200006e (8/110)
  scn: 0x0000.0008dcbe seq: 0x10 flg: 0x00 tail: 0xdcbe0610
  frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
  
  Block header dump: 0x0200006e
  Object id on Block? Y
  seg/obj: 0x620b csc: 0x00.8dc9e itc: 1 flg: O typ: 1 - DATA
  fsl: 0 fnx: 0x200006f ver: 0x01
  
  Itl Xid Uba Flag Lck Scn/Fsc
  0x01 xid: 0x0006.049.000000c1 uba: 0x008005ae.00c4.10 ---- 322 fsc 0x0000.00000000
  
  data_block_dump
  ===============
  tsiz: 0x1fb8
  hsiz: 0x296
  pbl: 0x08196c44
  bdba: 0x0200006e
  flag=-----------
  ntab=1
  nrow=322
  frre=-1
  fsbo=0x296
  fseo=0x16ee
  avsp=0x11d0
  tosp=0x11d0
  0xeti[0] nrow=322 offs=0
  0x12ri[0] offs=0x1fb1
  0x14ri[1] offs=0x1faa
  0x16ri[2] offs=0x1fa3
  
  该块中:有 0xeti[0] nrow=322 offs=0 可看出已经插入 322 条数据
  因为该块是 : 0x200006e, 所以该块freelist指向的next 是下面所指
  
  fsl: 0 fnx: 0x200006f ver: 0x01
  
  由此可以看出,LMT在本质上,和 DMT的freelist是一样的原理
  只不过在扩展和治理的算法上有了重大差异
  但到底这个算法是怎样的,暂时不得而知了
  
  FW:
  关于LMT的存储结构问题
  顺便简单交代一下:
  
  如上:
  
  Map Header:: next 0x00000000 #extents: 4 obj#: 25098 flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
  0x0200000a length: 15
  0x02000019 length: 16
  0x02000029 length: 16
  0x020000d9 length: 16
  
  由于 空间的扩展,
可能会有多个块被用来记录 bitmap ,在本例子中只有一个块记录,所以
  
  Map Header:: next 0x00000000 #extents: 4 obj#: 25098
  
  next 是没有值的, 该表只有4 extents ,obj编号 25098
  
  
  0x0200000a length: 15 表示,该 extent 从 0x0200000a 这个块开始,一共15块
  之所以这里是15而后面都是16是因为有一个block被多做了 segment geader
  
  我们可以看出
  0x0200000a + 15 正好是 0x02000019 ,这表示这两个extent是连续的
上一篇:关于如何理解Explain Plan的输出 人气:1014
下一篇:ASSM的局限性 人气:472
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-28 LDV个人相册系统 v1.6.1
2008-8-28 讯时网站管理系统CMS v3.5
2008-8-28 迅易评选管理系统 v9.3
2008-8-28 OpenX(广告管理系统) v2.6.1 多国
2008-8-28 雨点单用户免费留言板 v2.0 Buil
2008-8-28 APJE私服发布系统 v2.1 ASP版
2008-8-28 酷维CMS企业网站程序 v1.0
2008-8-27 风讯dotNETCMS v1.0 SP3 SQL/ACC
2008-8-27 风讯dotNETCMS v1.0 SP3 源码
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵