暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Oracle行链接和行迁移学习手册
419
5页
3次
2022-07-08
5墨值下载
行链接和行迁移
在介绍行链接和行迁移前我们要介绍数据块的参数:
PCTFREE
默认 10)和
PCTUSE(
默认
40)
PCTFREE
存储参数对于数据库如何管理可用空间至关重要。
SQL
参数设置保留为可用空间
以更新现有行的数据块的最小百分比。因此,
PCTFREE
对于防止行迁移和避免浪费空间非常
重要。
例如,假设您创建的表只需要偶尔更新而大多数更新不会增加现有数据的大小。
CREATE
TABLE
语句中指定
PCTFREE
参数,如下所示:
CREATE TABLE test_table (n NUMBER) PCTFREE 20;
12-9
显示
PCTFREE
设置为
20
如何影响空间管理。随着时间的推移,数据库向块中添加行,
导致行数据向上向块头增长,而块头本身正向下扩展到行数据
PCTFREE
设置确保至少
20%
的数据块是空闲的。例如,数据库阻止
INSERT
语句填充块,从而使行数据和头占据总块空
间的
80%
,只剩下
20%
的空闲空间。
PCTUSED
:是里的于多分比又可
insert
,一
40,
40%
,即:当数据低于
40%
时,又可以写入新的数据,这个时候处在下降期。
举例说明
假设你一个块可以存放 100 个数据,而且 PCTFREE 10PCTUSED 40,则:不断的
向块中插入数据,如果当存放到 90 个时,就不能存放新的数据,这是 pctfree 来控制,
留的空间是给 UPDATE 用的。
当你删除一个数据后,再想插入个新数据行不行?不行,必须是删除 41 个,即低于 40
个以后才能插入新的数据的,这是受 pctused 来控制的
注意:如果表空间上启用了 ASSM,在建立表的时候,只能指定 PCTFREE否则可用指定
PCTFREE PCTUSED
行链接:
第一次插入行时,行太大,无法放入一个数据块中。
在行链接中,Oracle 数据库将该行的数据存储在为该段保留的一个或多个数据块链中。行链
接通常发生在大行中。示例包括数据类型为 LONG LONG RAW 的行2kb 块中的 VARCHAR2
4000)列,或包含大量列的行。在这种情况下,链锁在所难免。
行迁移:
原来适合于一个数据块的行将被更新,从而使整个行长度增加,但可用空间不足,无法容纳
更新的行。
在行迁移中,Oracle 数据库会将整行移动到一个新的数据块中,假设该行可以放入新的数据
块中。已迁移行的原始行段包含指向包含已迁移行的新块的指针或转发地址已迁移行的
rowid 不会更改。
12-14 显示了在数据块中插入一个大行。该行对于左块太大因此数据库通过将第一行放
在左块中,将第二行块放在右块中来链接行。
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜