oracle – ‘shrink space compact’和’coalesce’之间有什么区

oracle文档
says在更改索引子句时收缩空间紧凑和合并非常相似,可以互相替换,但Tom
found在行为上有一些差异.

由于合并版在Oracle数据库的标准版中不可用,我认为使用它有一些好处.

那么,有什么区别?我可以在动态变化的索引上执行缩小空间紧凑吗?

解决方法

上面的答案是错误的.基本上有4种选择.

1 – ALTER INDEX COALESCE

2 – ALTER INDEX SHRINK SPACE

3 – ALTER INDEX SHRINK SPACE COMPACT

4 – ALTER INDEX REBUILD

选项1和3不会释放块.他们只是释放现有街区的空间. Coalesce的工作稍差一点,会有更多的块只有25-50%的可用空间,而收缩空间紧凑,会有更多的块有75-100%的可用空间.但是,块的总数保持不变.例如,具有200个具有合并的块的索引,并且在随机删除1/5行之后,将具有~1 / 5的索引块具有25-50%的可用空间,而其余的保持满.

另一方面,缩小空间和重建会释放块,并将它们合并到现有块中,从而减少块的总数.我认为唯一的区别是速度.当您从大表中仅删除5%时,没有理由重建整个索引,并且它将非常慢.但是,缩小空间在这里可能会快一点,因为它不会重建整个索引,只需重新组织块.

显然,最快的选择是通过紧凑型选项来合并或缩小空间.

dawei

【声明】:北京站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。