以下的文章主要是对Oracle数据库的空间相关管理技巧的描述,我们都知道关于相关的连续空间是可以用以下的语句,查看Oracle数据库中的自由空间,以下就是相关内容的具体介绍,望你会有所收获。
SQL>select*fromdba_free_space wheretablespace_name='SFSJTS' 2orderbyblock_id; TABLESPACEFILE_IDBLOCK_IDBYTESBLOCKS _NAME SFSJTS61334551064960130 SFSJTS61337191032192126 SFSJTS61338451064960130 SFSJTS61352751064960130 SFSJTS613572160620874 SFSJTS6139877901120110 SFSJTS614349773728090 SFSJTS622024873728090 SFSJTS624622849152060 SFSJTS62618041064960130 10rowsselected.
我们可以通过命令的结果来估计相邻自由空间的真正数量。对每一行,用起始快的id(BLOCK_ID)加上自由块(BLOCKS)的数量,如果其和与下一行的块id(BLOCK_ID)相等,则此两行是连续的。如上例第二行和第三行,133719+126=133845,而1338456+130!=135275,所以从block_id为133719开始,有126+130=256个block的连续空间。
在Oracle数据库的后台,系统监视器(SMON)周期性地合并自由空间相邻的块,以得到更大的连续块。而DBA可以用SQL命令来完成这个工作:
altertablespacetablespace_namecoalesce;
Oracle空间管理对Oracle数据库的工作性能有重要影响,其管理方法值得我们认真摸索研究。
相关文章
标签:Oracle