Title: automatic segment-space management and pctfree

The documentation says:
(Oracle9i SQL Reference, Release 1 (9.0.1), Part Number A90125-01, ALTER TABLE)
"For segments with automatic segment-space management, Oracle ignores attempts to change the PCTUSED setting. If you alter the PCTFREE setting, you must subsequently run the DBMS_REPAIR.segment_fix_status procedure to implement the new setting on blocks already allocated to the segment."

When you run dbms_repair.segment_fix_status, does it just read the bitmap tracking free vs. used space, and change the bit indicating whether or not pctfree has been exceeded for the corresponding block, or does it actually go and verify each block?

I'm pretty sure that it only reads the bitmap and not every extent in the table. I could form an "educated guess" by running it on a large table and seeing how long it takes, but how could I prove this conclusively? i.e. How would I see which blocks were read by the session that used DBMS_REPAIR.segment_fix_status?

Finally, how large is this bitmap that tracks free vs. used space? I read somewhere that the bitmap is "usually three blocks", but it seems to me that the size of the bitmap should depend on the number of blocks in the table.

Reply via email to