Oracle

В данном разделе представлены выдержки и некоторые программы из моего диплома,
посвященного настройке и оптимизации работы сервер ORACLE.



Redo Log Buffer Latch.

При частом обращении к Redo Log Buffer могут возникнуть проблемы с Redo Log Buffer Latch. Redo allocation latch контролирует распределение памяти для записей повторения в Redo Log Buffer. Всего один пользовательский процесс может распределять память в буфере в каждый момент времени, так как существует всего один redo allocation latch. Распределив память в Redo Log Buffer, пользовательский процесс копирует запись повторения в буфер, продолжая удерживать redo allocation latch. Большая часть случаев соперничества за замки происходит, когда процессы ORACLE одновременно пытаются получить один и тот же замок. Такое соперничество редко случается на однопроцессорных компьютерах, где в каждый момент может быть активным лишь один процесс.

ORACLE собирает статистику активности для всех замков и поддерживает ее в системной таблице V$LATCH.
а) для запросов типа willing-to-wait
GETS - количество успешных запросов на замок.
MISSES - количество раз, когда при первом обращении не получил доступ.
SLEEPS - количество раз, когда при повторном обращении поучил отказ.
б) для запросов типа immediate
IMMEDIATE_GETS - число успешных запросов на замок.
IMMEDIATE_MISSES - число безуспешных запросов на замок.

SELECT name, gets, misses, sleeps, immediate_gets, immediate_misses
FROM v$latch
WHERE name IN ('redo allocation', 'redo copy');
Если отношение числа MISSES к GETS превышает 1% или отношение числа IMMEDIATE_MISSES к сумме IMMEDIATE_MISSES и IMMEDIATE_GETS превышает 1%, то необходимо уменьшить соперничество за redo allocation latch, минимизировав время, в течение которого один процесс удерживает этот замок. Для этого следует уменьшить параметр LOG_SMALL_ENTRY_MAX_SIZE, который задает размеры записей повторения, копируемых за один раз.



prev next
Hosted by uCoz