消除行链接
2015-05-01 00:57
120 查看
行链接
当第一次插入行时,由于行太长而不能容纳在一个数据块中时,就会发生行链接。在这种情况下,oracle会使用与该块链接的一块或多块数据块来容纳该行的数据。行连接经常在插入比较大的行时才会发生,如包含long, long row, lob等类型的数据。在这些情况下行链接是不可避免的。
行迁移
当修改不是行链接的行时,当修改后的行长度大于修改前的行长度,并且该数据块中的空闲空间已经比较小而不能完全容纳该行的数据时,就会发生行迁移。在这种情况下,Oracle会将整行的数据迁移到一个新的数据块上,而将该行原先的空间只放一个指针,指向该行的新的位置,并且该行原先空间的剩余空间不再被数据库使用,这些剩余的空间我们将其称之为空洞,这就是产生表碎片的主要
少量的行链接不会对性能有很大的影响,一个大致准则是如果表中超过15%的数据行是行链接的,那么就要注意了
可以再MOVE同时设置更高的PCTFREE
使用ANALYZE命令查看行链接情况
上面的脚本创建了名为chained_rows的表,现在可以运行ANALYZE命令,填充该表
接下来查询chain_rows表
消除行链接:
1.创建一个临时表保存原来存储行链接的行
2.从原始表中删除连接的行
3.将临时表中的数据行插入到原始表中
当第一次插入行时,由于行太长而不能容纳在一个数据块中时,就会发生行链接。在这种情况下,oracle会使用与该块链接的一块或多块数据块来容纳该行的数据。行连接经常在插入比较大的行时才会发生,如包含long, long row, lob等类型的数据。在这些情况下行链接是不可避免的。
行迁移
当修改不是行链接的行时,当修改后的行长度大于修改前的行长度,并且该数据块中的空闲空间已经比较小而不能完全容纳该行的数据时,就会发生行迁移。在这种情况下,Oracle会将整行的数据迁移到一个新的数据块上,而将该行原先的空间只放一个指针,指向该行的新的位置,并且该行原先空间的剩余空间不再被数据库使用,这些剩余的空间我们将其称之为空洞,这就是产生表碎片的主要
少量的行链接不会对性能有很大的影响,一个大致准则是如果表中超过15%的数据行是行链接的,那么就要注意了
可以再MOVE同时设置更高的PCTFREE
[code]alter table emp move picture 40
使用ANALYZE命令查看行链接情况
[code]@?/rdbms/admin/utlchain.sql
上面的脚本创建了名为chained_rows的表,现在可以运行ANALYZE命令,填充该表
[code]analyze table emp list chain rows;
接下来查询chain_rows表
[code]select count(*) from chained_rows where table_name=‘EMP’;
消除行链接:
1.创建一个临时表保存原来存储行链接的行
2.从原始表中删除连接的行
3.将临时表中的数据行插入到原始表中
[code]create table temp_emp as select * from emp where rowid in(select headword from chained_rows where table_name=‘EMP’);
[code]delete from emp where rowid in(select headword from chained_rows where table_name=‘EMP’);
[code]insert into emp select * from temp_emp;
相关文章推荐
- oracle 关于行链接和行迁移和消除
- css消除链接下划线
- 如何批量消除链接虚线框?
- 行链接和行迁移检测和消除方法
- 消除行链接、行迁移
- 行链接和行迁移检测和消除方法
- 行链接 行迁移的消除
- Oracle 行迁移 & 行链接的检测与消除
- 消除点击网页图片、文字链接后出现的虚线框
- 行链接消除测试
- 消除SDK更新时的链接问题 “https://dl-ssl.google.com refused”
- 链接点击前后的颜色设置以及消除链接下划线
- 消除浏览器预设XHTML元素CSS样式
- Java JDBC 关闭链接
- java技术支持 第二次 任务链接
- ueditor出现:本地测试上传图片成功,而公网测试提示错误:“网络链接错误,请检查配置后重试!”
- openstack的Juno关于Keystone的middware的鉴权链接URI的改进
- outlook邮箱网址链接打不开如何处理
- 图像处理中的数学原理详解(已发布的部分链接整理)
- Websocket链接winsock2编写的服务…