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

本月文章推荐
.某个数据文件损坏,如何打开数据.
.oracle 存储过程的基本语法.
.Linux核心数据结构.
.oracle数据库运算:intersect和m.
.Redhat7.2(7.1)下oracle8.17的安.
.Oracle处理多媒体信息的原理及展.
.Oracle数据库在NT平台的系统优化.
.怎样制作可执行的java程序.
.数据库开发者常犯的十大错误,你.
.如何将primary key建在其它的表空.
.关于数据库OS审计.
.Oracle中如果对“性别”这样的字.
.JSR 198 最终草案提交 统一IDE插.
.Oracle 数据库向 MS SQL Server .
.Windows NT平台下Oracle优化策略.
.帮你解决Oracle 9i和Tomcat的端口.
.一套实现Oracle异地数据自动备份.
.ExactPapers Oracle 1Z0-007 200.
.oracle数据库中sql基础.
.Oracle FAQ 之OS相关与其它篇.

Oracle9i的自动分段空间管理改善了分段存储的本质

发表日期:2008-2-9 |



  为了保持其最强大和最灵活数据库的地位,Oracle在最近发布的几个版本里一直都在创建新的机制来对表格和索引的存储进行简化和分块。从Oracle8i开始,Oracle开始在tablespace内部将对象治理进行自动化。第一个增强的地方原来叫做本地治理tablespace(或者简写作LMT)。 在LMT里,Oracle将tablespace里的信息从数据字典的表格空间里移出去,而直接将其保存到tablespace自身里。这在Oracle9i里已经成为了一个事实的标准,因为它减轻了数据字典的负担。
  
   
  
  表格空间的第二个主要增强的是自动分段空间治理(ASSM),它首次出现在Oracle9i里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地治理存储扩展和剩余区块(free block),因此能够改善分段存储本质。
  
  
  治理空间的两种方法
  
  让我们从比较这两种空间治理开始:
  
  本地治理tablespace(LMT)——LMT是通过把EXTENT MANAGEMENT LOCAL子句添加到tablespace的定义句法而实现的。和原来由字典治理的tablespace(DMT)不同,LMT会将扩展治理自动化,并保持Oracle DBA不会被用来指定治理扩展大小的NEXT存储参数。这个原则唯一的例外是在NEXT和MINEXTENTS一起用在表格创建的时候。
  自动区段空间治理(ASSM)——ASSM的tablespace是通过将SEGMENT SPACE MANAGEMENT AUTO子句添加到tablespace的定义句法里而实现的。通过使用位图freelist取代传统单向的链接列表freelist,ASSM的tablespace会将freelist的治理自动化,并取消为独立的表格和索引指定PCTUSED、FREELISTS和FREELIST GROUPS存储参数的能力。
  
  Oracle值得赞扬的地方是,这两个空间治理的方法都是可选的特性,而且Oracle的老手可能仍会使用更加具体的方法,只要他们愿意的话。要注重,位图区段治理在Oracle9i里是可选的,而且只能在tablespace这一层实现,这一点是十分重要的。原有的系统还能够继续使用传统方法来治理freelist。
  位图freelist挑战传统的空间治理
  在我讨论位图freelist和传统的空间治理之前,让我们看看位图freelist是如何实现的。我会从使用区段空间治理自动参数创建tablespace开始:
  
  
  
  create tablespace
    asm_lmt_ts
  datafile
    'c:\oracle\oradata\diogenes\asm_lmt.dbf'
  size
    5m
  EXTENT MANAGEMENT LOCAL    -- Turn on LMT
  SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM
  ;
  
  
  
  一旦你定义好了tablespace,那么表格和索引就能够使用各种方法很轻易地被移动到新的tablespace里。下面就是我进行创建的代码:
  
  
  create table
    new_cust
  tablespace
    assm_lmt_ts
  as
    select * from customer;
  
  alter index cust_name_idx rebuild tablespace assm_lmt_ts;
  
  
   
  
  要注重,当表格或者索引被分配到这个tablespace以后,用于独立对象的PCTUSED的值会被忽略,而Oracle9i会使用位图数组来自动地治理tablespace里表格和索引的freelist。对于在LMT的tablespace内部创建的表格和索引而言,这个NEXT扩展子句是过时的,因为由本地治理的tablespace会治理它们。但是,INITIAL参数仍然是需要的,因为Oracle不可能提前知道初始表格加载的大小。对于ASSM而言,INITIAL最小的值是三个区块。
  
  关于一个万能的方法对于Oracle来说是否是最好的方法还有一些争论。在大型数据库里,单独的对象设置会带来性能和存储上的巨大不同。
  PCTFREE的问题
  
   
  
  PCTFREE参数是用来指定数据块剩余空间大小的,这一空间为将来数据行的扩展而保留。假如PCTFREE设置得不得当,SQL的更新声明就可能导致大量的数据行碎片和断链。
  
  数据行在刚保存的时候还很小,而在后来进行了扩展,在这种情况下,PCTFREE的设置就显得尤其重要了。在这样的系统里,通常会把PCTFREE设置成等于95,这就告诉Oracle要为数据行今后的扩展保留95%的数据区段空间。
  
  
  
  PCTUSED的问题
  
  对PCTUSED不正确的设置(例如设得太小了)会导致SQL插入声明性能的急剧下降。假如数据区块剩余空间不是很多,那么在SQL插入操作的过程中就会产生过量的I/O,这是因为被重新使用的Oracle数据区块会被迅速地填满。从极端的角度来看,没有正确地设置PCTUSED会导致数据区块的剩余空间要比表格数据行的平均长度小。在这样的情况下,Oracle会五次尝试从freelist链取回区块。在五次尝试以后,Oracle会提升表格的水位,并为插入操作腾出五个新的数据块。
  
  有了Oracle9i的ASSM,PCTUSED就不再控制表格数据块的重新链接阙值了,但是你必须依靠Oracle的判定来确定区块在什么时候会有足够的剩余空间放置到freelist里。

  
  尽管有了本地治理的tablespace和ASSM之后Oracle9i会忽略PCTUSED、FREELISTS和FREELIST GROUPS等参数,但是当它们用于表格定义的时候,Oracle还是不会给出错误信息:
  
  
  
  SQL> create table
  2 test_table
  3 (c1 number)
  4 tablespace
  5 asm_test
  6 pctfree 20 pctused 30
  7 storage
  8 ( freelists 23 next 5m ) ;
  Table created.
  
  
  
  假如你不记得带有ASSM的本地治理tablespace会略掉任何为PCTUSED、NEXT和FREELISTS所指定的值的话,这将是一个十分严重的问题。.
  
  使用ASSM的一个巨大优势是,位图freelist肯定能够减轻缓冲区忙等待(buffer busy wait)的负担,这个问题在Oracle9i以前的版本里曾是一个严重的问题。现在让我们来仔细看看这个特性。
  缓冲区不再忙等待
  在没有多个freelist的时候,每个Oracle表格和索引在表格的头部都曾有一个数据块,用来治理对象所使用的剩余区块,并为任何SQL插入声明所创建的新数据行提供数据块。当数据缓冲内的数据块由于被另一个DML事务处理锁定而无法使用的时候,缓冲区忙等待就会发生。当你需要将多个任务插入到同一个表格里的时候,这些任务就被强制等待,而同时Oracle会在同时分派剩余的区块,一次一个。
  
  有了ASSM之后,Oracle宣称显著地提高了DML并发操作的性能,因为(同一个)位图的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。根据Oracle的测试结果,使用位图freelist会消除所有分段头部(对资源)的争夺,还能获得超快的并发插入操作(图A)。
  
  图A
  Oracle9i的自动分段空间治理改善了分段存储的本质
  Oracle公司对使用位图freelist进行SQL插入操作的测试结果
  
  ASSM的局限性
  尽管ASSM显示出了令人激动的特性并能够简化Oracle DBA的工作,但是Oracle9i的位图分段治理还是有一些局限性的:
  
  一旦DBA被分配之后,它就无法控制tablespace内部的独立表格和索引的存储行为。
  大型对象不能够使用ASSM,而且必须为包含有LOB数据类型的表格创建分离的tablespace。
  你不能够使用ASSM创建临时的tablespace。这是由排序时临时分段的短暂特性所决定的。
  只有本地治理的tablespace才能够使用位图分段治理。
  使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的时候可能会出现性能上的问题。
  
  在我
  下一篇文章 里,我将解释如何获得一些用于DBA的新工具,还有Oracle9i的ASSM特性。我还将看看你要如何将这些工具和ASSM一起使用。
上一篇:Oracle9i如何支持动态重配置 人气:601
下一篇:理解数据库的统计集聚函数 人气:867
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-6 Menalto Gallery v2.3 Rc2 多国语
2008-10-6 花香盈路(Hxcms) v9.0
2008-10-6 华军软件下载系统 v1.5
2008-10-6 e107 v0.7.13
2008-10-6 (开源PHP框架) CodeIgniter v1.6
2008-10-6 PHP在线考试系统PPExam v1.2.6 b
2008-10-6 SiteDynamic企业网站管理系统 v1
2008-10-6 WebPlayer9 P2P视频点播电影整站
2008-10-6 BCMS v1.1 测试版
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成