Search This Blog

Friday, April 13, 2007

Resolving Free List Contention

Diagnosing Free List Contention

The V$SYSTEM_EVENT and V$WAITSTAT dynamic performance views are used to diagnose free list contention problems.

Select class,count,time
From v$waitstat
Where class = ‘segment header’;

Select event,total_waits
From v$system_event
Where event =’buffer busy waits’;

Identify the segment and determine the number of free list that currently exist for the segment identified by querying:

Select s.segment_name,s.segment_type,s.freelists,w.wait_time,w.seconds_in_wait,w.state
from dba_segments s, V$session_wait w
where w.event ='buffer busy waits'
and w.p1 = s.header_file
and w.p2 = s.header_block;

Resolving Free List Contention

In order to change the freelist storage just alters the segment:

Alter table xyz storage( freelists 2);

In oracle9i free list contention can be solved if you move the infected table into a tablespace with space segment management auto