by Burleson Consulting
The Data Warehouse Development Life Cycle
Parallelism And Oracle Data Warehousing
Freelists And Oracle Parallel Server Contention
Freelists are especially important for Oracle data warehouses that
experience a high volume of localized update activity. A freelist is
the parameter used when more than one concurrent process is expected
to access a table. Oracle keeps one freelist for each table in
memory, and uses the freelist in order to determine what database
block to use when an SQL INSERT occurs. When a row is added, the
freelist is locked. If more than one concurrent process is
attempting to insert into your table, one of the processes may need
to wait until the freelist has been released by the previous task.
To see if adding a freelist to a table will improve performance, you
will need to evaluate how often Oracle has to wait for a freelist.
Fortunately, Oracle keeps a V$ table called V$WAITSTAT for this
purpose. The following query example tells you how many times Oracle
has waited for a freelist to become available. As you can see from
the following query, Oracle does not tell you which freelists are
experiencing the contention problems:
SELECT CLASS, COUNT
SEE CODE DEPOT FOR FULL SCRIPT
free list 83
Here, we see that Oracle had to wait 83 times for a table freelist
to become available. This could represent a wait of 83 times on the
same table or perhaps a single wait for 83 separate tables. We have
no idea. While 83 may seem to be a large number, remember that
Oracle may perform hundreds of I/Os each second, so 83 may be quite
insignificant to the overall system. In any case, if you suspect
that you know which table’s freelist is having the contention, the
table can be exported, dropped, and redefined to have more freelist.
While an extra freelist consumes more of Oracle’s memory, additional
freelists can help the throughput on tables that have lots of
inserts. Generally, you should define extra freelists only on those
tables that have many concurrent update operations. Now, let’s take
a look at some table definitions and see if we can infer the type of
activity that will be taking place against the tables. Listings 7.1
and 7.2 each present a table definition.
This is an excerpt from "High Performance
||If you like Oracle
tuning, you may enjoy the book
Oracle Tuning: The Definitive Reference
, with over 900 pages of BC's favorite tuning tips & scripts.
can buy it directly from the publisher and save 30%, and get instant
access to the code depot of Oracle tuning scripts.
Expert Remote DBA
BC is America's oldest and largest Remote DBA Oracle support
provider. Get real Remote DBA experts, call
BC Remote DBA today.