暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 只有插入的表中的空间碎片

askTom 2018-08-05
195

问题描述

嗨,汤姆,

这是普拉文。

1) 我的表x只有插入和更新很少,所以我的疑问是,直到现在,我听说并读到,将有空间碎片删除操作完成在一个表上,我无法找到如何插入语句,table的update语句会导致空间碎片。所以请简单解释一下。
2) 我有一个存储图像的表y。该表的大小 (以及lob段的大小) 约为8tb,其中8TB的表大小约为1tb,lob段大小为7tb。现在,如果我删除大约700Gb的表数据,那么要回收lob段的空间,有一个我已经看到的命令,即ALTER table table_name修改LOB(lob_column) (收缩空间),但是,如果我在7tb的lob段上运行它,即使在5到6个小时后也不会出现。
注意: 我这里的表y使用的是10的pctversion值
3) 我读过lob段中的空间将根据参数 (保留或pctversion) 重新使用,因此在我的情况下,如果我删除10% 的lob段 (即大约700gb的数据) 大小,接下来的insert语句是否会重用lob段中的空间,因为pctversion参数指定要用作lob的撤消的总lob段空间的10%,并且当它们超过lob段空间的10% 时会覆盖它们。

因此,请建议我使用正确的方法来回收lob段中的空间,并重新设计导致碎片的insert语句


谢谢。

专家解答

1) 是什么让您认为仅插入表中存在碎片?假设您正在使用ASSM表空间,这里会有 * 一些 * 小孔,但是没有什么通常会引起任何关注。你没有提供任何上下文或数据显示碎片,所以我不能真的评论更多。

2) 您的陈述可以通过多种方式解释。是1tb表数据的700G,或整个8tb的700G。如果我要删除1TB中的700G表数据,那么我将查看cta而不是delete。在后一种情况下,删除可能是您唯一的选择。

pctversion不会回收空间-它只是定义为旧版本的lob数据保留了多少lob空间,以提供一致的读取。如果您在非常安静的时间内进行删除,则可能会减少这种情况,但是该参数控制着何时可以重用保存过时的lob数据的空间。

如果您使用的是securefiles,那么数据库应该为您照顾空间使用和回收之间的平衡。一些例子见这篇文章

https://asktom.oracle.com/pls/apex/asktom.search?tag=reclaimreuse-lob-space

3) 见上文。pctversion有效地表示,如果您的lob数据的大小为 “x”,那么我们将在重新使用已删除的空间之前,将段增加到x 10% 以处理一致的读取。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论