当前位置:   article > 正文

shrink_55nm数字后端怎么做shrink

55nm数字后端怎么做shrink

开发过程中有时会遇到这样的问题:表的数据并不多,但是全表扫描时为什么耗时那么久?这时候你就需要看看HWM的情况了,因为影响全表扫描的一个重要因素就是HWM,每次全表扫描就是扫描HWM以下的数据块。来做个试验:

1. 建个表test,用show_space看数据块的分布情况:可以看到刚刚建立的表数据块还是分布的很结实的

total_blocks: 24576
total_bytes: 201326592
unused_blocks: 869
unused_bytes: 7118848
last_used_extent_file_id: 4
last_used_extent_block_id: 208649
last_used_block: 155
unformatted_blocks: 0
unformatted_bytes: 0
0%-25% block: 0
0%-25% bytes: 0
25%-50% block: 0
25%-50% bytes: 0
50%-75% block: 0
50%-75% bytes: 0
75%-100% blocks: 0
75%-100% bytes: 0
full_blocks: 23508

full_bytes: 192577536

2. delete一半的数据后再看数据块的分布情况:可以看到有空闲空间的数据块明显增多,而总共数据块(HWM)仍然为24576,并没有减少,也就是说,删除数据后全表扫描的性能不会得到优化

total_blocks: 24576
total_bytes: 201326592
unused_blocks: 869
unused_bytes: 7118848
last_used_extent_file_id: 4
last_used_extent_block_id: 208649
last_used_block: 155
unformatted_blocks: 0
unformatted_bytes: 0
0%-25% block: 0
0%-25% bytes: 0
25%-50% block: 169
25%-50% bytes: 169
50%-75% block: 7284
50%-75% bytes: 7284
75%-100% blocks: 5978
75%-100% bytes: 5978
full_blocks: 10077

full_bytes: 82550784

3. 执行shrink后,在再看数据块的分布情况:可以看到数据块又被打结实了,而且总数据块的数据减少为13152,此时全表扫描的性能得到提升!!!!

SQL> alter table test enable row movement;

SQL> alter table test shrink space;

total_blocks: 13152
total_bytes: 107741184
unused_blocks: 2
unused_bytes: 16384
last_used_extent_file_id: 4
last_used_extent_block_id: 197385
last_used_block: 862
unformatted_blocks: 0
unformatted_bytes: 0
0%-25% block: 0
0%-25% bytes: 0
25%-50% block: 1
25%-50% bytes: 1
50%-75% block: 0
50%-75% bytes: 0
75%-100% blocks: 2
75%-100% bytes: 2
full_blocks: 12992

full_bytes: 106430464

所以说提升全表扫描性能的一个好办法就是收缩表的空隙,降低表的高水位线!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/836930
推荐阅读
相关标签
  

闽ICP备14008679号