Wait Problem

Potential Fix

Sequential ReadIndicates many index reads—tune the code (especially joins)
Scattered ReadIndicates many full table scans—tune the code; cache small tables
Free Buffer

Increase the DB_CACHE_SIZE; shorten the checkpoint; tune
the code

Buffer BusySegment header—add freelists or freelist groups
Buffer Busy

Data block—separate “hot” data; use reverse key indexes; use
smaller blocks; increase initrans (debatable); reduce block
popularity; make I/O faster

Buffer BusyUndo header—add rollback segments or areas
Buffer BusyUndo block—commit more; larger rollback segments or areas
Latch FreeInvestigate the detail (a listing later in this chapter includes fixes)
Enqueue – STUse LMTs or preallocate large extents
Enqueue – HWPreallocate extents above the high water mark
Enqueue – TX4Increase initrans or use a smaller block size on the table or index
Enqueue – TX6Fix the code that is making the block unsharable (use v$lock to find)
Enqueue – TMIndex foreign keys; check application locking of tables
Log Buffer SpaceIncrease the log buffer; use faster disks for the redo logs
Log File SwitchArchive destination slow or full; add more or larger redo logs
Log file sync

Commit more records at a time; use faster redo log disks; use
raw devices

Write complete waitsAdd database writers; checkpoint more often; buffer cache too small
Idle EventIgnore it

更多推荐

Oracle wait problems and potential solutions