Automatic Segment Space Management

Use ASSM instead of FREELISTS, FREELIST GROUPS, and PCTUSED.

In version 9i of the database, Oracle introduced Automatic Segment Space Management, as an alternative to using free lists, in locally managed tablespaces. This system of managing free space in segments utilizes bitmaps to track the amount of free space in blocks that is available for inserting rows. Since free lists are no longer used when ASSM is enabled, the overall time and
resource needed by the database is greatly minimized.

In 10g, the database has expanded the feature set of ASSM further and provided a new clause to the ALTER TABLE and ALTER INDEXES statements. The “SHRINK SPACE” clause essentially coalesces the free space in the segment, releasing unused space so that the segment can be smaller. This can improve the performance of queries on this segment, and it is much easier to
implement than reducing a segment size through export/import or move/rename operations.

ASSM should improve overall performance of block management within segments, but there is a circumstance where the architecture of using a free space bitmap for the block usage can slow performance. Full table scans of small tables (<1000 rows) will actually require more buffer gets than a non-ASSM tablespace. Therefore, if you have your tablespaces organized by the size of segments, ASSM should probably be used only on those tablespaces with medium to large segments.

ASSM has the potential to make a dramatic improvement to block management performance, but do your research, as there are several bugs scattered across different versions of the database that can affect you in specific situations. Before implementing ASSM on your system, be sure to research the types of segments you will have in your tablespace and check for issues related to operations against those types of segments for your version of the database. Most of these bugs have patches that can be applied to resolve the issues.


请使用浏览器的分享功能分享到微信等