用Oracle分段空间管理功能改进数据库性能_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1979 | 回复: 0   主题: 用Oracle分段空间管理功能改进数据库性能        下一篇 
xiaojiang
注册用户
等级:少尉
经验:345
发帖:77
精华:0
注册:2011-8-31
状态:离线
发送短消息息给xiaojiang 加好友    发送短消息息给xiaojiang 发消息
发表于: IP:您无权察看 2015-6-16 17:47:21 | [全部帖] [楼主帖] 楼主

如果Oracle数据库表出现大量碎片数据,则会浪费磁盘空间和严重影响性能。这时可以使用Oracle分段空间管理功能,特别是Oracle数据库分段压缩功能。

更新或删除表的记录,会在数据块中形成许多的空白空间。一些空白空间会被后来插入的记录重用。然而,删除和插入的大小差别会产生极小的碎片空间,以至它们永远也不会被再使用。此外,在一个已经删除大量记录的表中,表分段将在高位线下包含大量的稀疏(或空白)块。这样会大大降低全表扫描的效率。

在线分段压缩功能是Oracle分段空间管理的首选方法,它会回收分段中高位线之下的碎片空闲空间。在线分段压缩操作不同于ALTER TABLE、INDEX或CLUSTER命令的DEALLOCATE UNUSED子句。解除分配操作会直接释放分段中高位线之上的空闲空间。压缩分段会整合高位线之下的碎片空闲空间和压缩数据。高位线将向下移,回收的空间 将会释放。在压缩操作执行之后,分段的数据将保存到较少的块中。这样可以优化缓存使用率,并且减少全表扫描时要读取的块数。

使用分段压缩的Oracle分段空间管理

分段压缩可以在使用表的工作时间执行。它不会影响DML操作或查询,也不需要额外的磁盘空间。在压缩操作结束时,并发DML操作将会暂停一小段时间,这段时间将用于释放一些空间。分段的所有索引都会在压缩操作期间保持不变。在操作完成之后,它们一样保持不变。

压缩操作会在物理上将数据文件的记录移到新位置。要实现这个操作,必须使用ALTER TABLE.ENABLE ROW MOVEMENT命令,启用对象的记录移动。然后,还需要禁用分段中所有基于记录ID的触发器。此外,压缩操作只能在本地管理且启动自动分段空间管理的表 空间的分段上执行。在线分段压缩不支持以下几种分段类型:压缩表、IOT表、SecureFile LOB、有若干功能索引的表及有基于ID的物化视图的表。

要分析在线压缩分段是否会提高分段的运行效率,最简单方法是使用Segment Advisor。Segment Advisor会检查自动负载库的使用率和增长统计信息,并从分段提取抽样数据,从而确定可以回收空间的分段。默认情况下,分析工具会在维护时间内作为一 个自动化维护任务执行。此外,它也可以手动执行。如果分析工具发现一个分段可以回收大量的空闲空间,那么它会建议执行一次在线分段压缩操作。如果对象不适 合执行分段压缩操作,那么它会建议在线重新定义表(也称为重组)。执行在线重定义的最终结果与在线分段压缩很相似。然而,重定义操作在执行过程中需要使用 额外的磁盘空间。

Oracle分段空间管理工作可以压缩表、索引表、索引、分区、子分区、物化视图或物化视图日志的空间。这个操作的执行方式是:在各种ALTER语 句(例如,ALTER TABLE、ALTER INDEX、ALTER MATERIALIZED VIEW或ALTER MATERIALIZED VIEW LOG)中使用SHRINK SPACE子句。此外,SHRINK SPACE子句还有两个可选关键字,它可以控制压缩操作的行为:

COMPAT – 在子句中指定这个参数,就会把压缩分段操作分布两个阶段。数据库会整理分段空间的碎片,压缩表的记录,但是压缩操作不会重置高位线或释放空间。这个参数通 常用在一些没有长查询操作的数据库,这些表查询可能会跨越多个操作,它们会试图从回收块中读取数据。在数据库活动较少的时候,数据库会执行第二个 SHRINK SPACE操作完成整个过程,但是这一次命令不带COMPAT关键字。
CASCADE – 这个参数会让分段压缩操作在对象的所有独立分段上执行。例如,压缩一个表时添加CASCADE,就会在表的所有索引上执行分段压缩操作。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论