我正在尝试分析表空间中的大量空间使用情况。使用DBMS_SPACE.UNUSED_SPACE
查找未使用的块以计算高水位线(HWM)。
这是DBMS_SPACE.UNUSED_SPACE
返回的输出:
Dbms_Output.Put_Line('TABLE_NAME::UNUSED_BLOCKS::'
|| 'TOTAL_BLOCKS::HIGH_WATER_MARK');
Dbms_Space.Unused_Space(cur_rec.owner,
cur_rec.table_name,
'TABLE',
op1,op2,op3,op4,op5,op6,op7);
Dbms_Output.Put_Line(cur_rec.table_name || '::'
|| op3 || '::'
|| op1 || '::'
|| Trunc(op1-op3-1));
TA2 :: 0 :: 4552960 :: 4552959
TA3 :: 0 :: 3224960 :: 3224959
TA4 :: 0 :: 4859648 :: 4859647
TA5 :: 0 :: 48 :: 47
TA6 :: 0 :: 40 :: 39
TA7 :: 5 :: 8 :: 2
TA8 :: 5 :: 8:2
TA9 :: 5 :: 8 :: 2
我试图理解输出,但是无法准确解释它。例如,对于TA2,HWM = 4552959,但UNUSED_BLOCKS为零。这是否意味着没有删除发生,只有插入发生了?那么TA7呢,有5个UNUSED_BLOCKS。