网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  带你轻松掌握行分链与行迁移的相关概念     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:94次  录入:管理员--2008-03-17  
 

在实际的应用中,如果行分链与行迁移经常删除,那么可能不能重用块中的自由空间,所以对于这种情况,我们要利用空间的话,可以把pctused设置高点主要是在insert操作期间引发行分链操作。而行的迁移主要由update操作引起。

行链接

行链接: insert or update引起,一个row存在不同的block中, 行不同部分通过不同块地址(rowid)链成一个链,可以通过设置大的db_block_size来减少行链接的发生,但无法避免(lob)

行迁移: update引起,由于pctfree过小,rowid未变, 可以通过增大pctfree的值减少行迁移的发生。

行分链是db_block_size设置不够大,以至于对于一些大的行(比如varchar2(32666),blob,clob的长度,大于块大小(比如4k))这样一个块肯定不能保存一行记录,就需要将行分开保存到不同的块中.特别是blob这样的类型,最好设置一个单独的表空间来保存实际的数据.

包含一个long/long raw列时,在这种情况下,后者通常保存在最后oracle维护一个lob定位器允许对行外lob快速访问。lob定位器,大约有24个字节大小,disable storage in row参数来实现保存在行外(分散开),不管数据大小行分链很难控制(除非通过选择db_block_size足够大,可以装下整个行,这通常是不可能的)。然而,行迁移可以通过create / alter table命令的pctfree和pctused参数有效控制。

>>>>>另一种发生行链接是在行迁移不成功的情况下进行的,如update操作引起。当更新一行使其大小增加

而块中的当前自由空间不足以放下该行,那么就把整个行取出来放到一个有足够空间的块中(如果没有块

有所需的空间放整行,行要分成链;如果即使行分成链仍然没有足够的空间,那么产生一个错误消息

“ora-1650-55:unable to extend)

行迁移

我们如果要更新一行(更新总是允许的),并将其行加大,而加大的行所需要的空间大于块中的自由空间时.假使我们把一行中多出的空间放到另一个块中,而另一行放在原来块中(这就是行分链接),从而使原来块100%的填充.这样好象只会在单独的行时会发生,oracle会把这整行迁移到其他能容纳空间的块中(这就是行迁移).这样会在原来的块中留一个行头,行头中保留了放实际行的块的地址.对于行链接,但是应用程序从来不知道这些,使用sql也没有什么不同,他只是性能上的原因.如果通过索引来读取这行,索引会指向最初的新块不仅是使用了两个左右的io读取索引,加上一个io读取这张表1通过使用pctfree保持每块中的自由空间,允许行仍位于原来的块中,不用管这种扩张。

如果pctfree为0,那么所有的自由空间将被insert使用,后续的update将使行迁移到另外一个块中,以适合扩展的需要。

在理想的情况下,设置pctfree为位于行大小的中间值与最大值之间。例如,如果行大小的中间值估计为大约900字节,最大的行大小为1255字节,那么设置pctfree值在10(缺省)和30之间是比较合理的。

 
 
上一篇: 在存储过程中拥有"role"权限的特殊性    下一篇: 教你快速掌握“外连接”的两种标准写法
  相关文档
Oracle中spfile和pfile之间区别和联系 05-13
实例讲解oracle监听口令及监听器安全 03-06
Oracle里取随机数的几种具体的方法 05-13
实例讲解一个关于函数索引的性能调优过程 02-28
SQL Server和Oracle并行处理比较分析 04-11
Oracle数据库中的特权和角色 09-29
对一些代码加密后再放到oracle数据库中 03-06
轻松掌握什么是数据的物理(存储)结构 09-29
Oracle数据库中有关CBO优化的三个问题 09-01
Oracle9i与SYBASE ASE12.5相比的几个不足 08-05
如何在SQL Server中构建并利用UDF表格 07-07
详细讲解oracle i/o子系统的配置和设计 (1) 04-30
oracle数据库中undo数据段的作用及类型 04-24
教你快速掌握“外连接”的两种标准写法 03-17
在不安装oracle客户端的情况下进行系统移植 07-18
可以实现故障预防 探测和恢复的maa结构 05-04
带你深入了解oracle数据库的进制转换 03-11
用一个实例讲解如何正确使用数据库游标 04-09
如何使用分析函数来进行行和列的转换 03-26
如何在高级的复制中切换主体定义站点 03-26
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息