dba_tables中的blocks列加1后指高水位的数据块号,高水位前面依然会有空块,empty_blocks指高水位后面(包括高水位)未被使用的block数量,注意对表进行分析后,才能得到这两个值的准确结果,使用dbms_space.unused_space过程也可以得到这两个值(具体方法参见黄河编著《Oracle 9i数据库系统管理培训教程(基础篇)》390页)。dba_segments中的blocks列指此表被分配到的block的总数,此视图不需要对表分析即可查询,也可通过查询dba_extents得到表被分配到的block及extent的总数。
使用:alter table table_name deallocate unused命令可以回收高水位后面未使用的块,但是回收后留下的总块数为8的倍数,从而一般不会把未使用的块恰好全部回收。
dba_segments中的blocks列指此表被分配到的block的总数,此视图不需要对表分析即可查询,也可通过查询dba_extents得到表被分配到的block及extent的总数。
使用:alter table table_name deallocate unused命令可以回收高水位后面未使用的块,但是回收后留下的总块数为8的倍数,从而一般不会把未使用的块恰好全部回收。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/37724/viewspace-152518/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/37724/viewspace-152518/
博客介绍了Oracle数据库中dba_tables和dba_segments的blocks列含义,dba_tables的blocks列加1是高水位数据块号,empty_blocks指高水位后未使用block数量,分析表后可得准确值。还提到可通过dbms_space.unused_space过程获取相关值,以及使用特定命令回收高水位后未使用块,但回收后总块数为8的倍数。
423

被折叠的 条评论
为什么被折叠?



