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

Oracle 表/索引碎片,因为delete语句

ASKTOM 2020-05-13
305

问题描述

你好,问一下汤姆团队。

我们在生产环境中有一个数据库。每两周我们就会对其进行更改。在QA功能测试中,我们必须在生产模式表上插入数千行。测试准备就绪后,我们 (在同一天) 删除这些行 (〜8k行)。同时,使用该系统的客户不断收到行。

由于业务变更,此测试是强制性的。我认为这不是一个好习惯,但我什么也做不了。

1.这个练习会把表/索引片段化吗?
2.如何查看碎片表/索引?
3.如何纠正它们?

Note: all the tables in the schema production once inserted will never be updated or deleted (just in extreme situations we use DML to correct some data).

提前感谢。

问候,

专家解答

我同意-理想情况下,除非我们有严格的流程以确保不会影响资源消耗或向客户提供无效数据,否则我们不会在生产中进行测试。

话虽如此,你所做的事情不太可能会导致碎片问题。

除各种边界方案外,我们将重用已删除的空间。

我建议您阅读的一个非常好的参考是Richard Foote的演讲

https://richardfoote.files.wordpress.com/2007/12/index-internals-rebuilding-the-truth.pdf

它将经历这些场景,以及如何决定是否需要采取行动。.. 但是很有可能,你不会
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论