Показать сообщение отдельно
  #12  
Старый 20.09.2009, 15:24
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Серверный процесс и кэш буферов базы данных



Серверный процесс и кэш буферов базы данных

При обработке запроса серверный процесс Oracle ищет требуемые блоки в кэше буферов БД. Если блок не найден, серверный процесс читает блок из файла данных и размещает его копию в кэше буферов БД. Поскольку последующие запросы этого же блока обнаружат его в оперативной памяти, могут не понадобиться дополнительные физические чтения. Сервер Oracle использует алгоритм удаления наиболее давно использовавшихся буферов (least recently used algorithm - LRU) для их выгрузки с целью освобождения места и размещения новых блоков в кэше буферов.

Буферы в кэше буферов могут быть в одном из четырех состояний:

Pinned (закрепленный) - означает, что несколько сеансов не могут в один и тот же момент времени писать в один блок и вынуждены ждать доступа к блоку, находящемуся в буфере.
Clean ("чистый") - означает, что буфер в настоящее время не закреплен (unpinned) и является кандидатом на удаление из кэша, если на его содержимое не будет опять ссылок. Содержимое буфера либо синхронизировано с блоком на диске, либо буфер использовался для генерации и обработки старого моментального снимка (snapshot) блока в режиме целостного чтения (consistent read - CR блок).
Free/unused (свободный/неиспользуемый) - означает, что буфер пустой, т.к. экземпляр только что был запушен. Состояние очень похоже на состояние clean, за исключением того, что буфер еще не использовался.
Dirty ("грязный") - буфер больше не является закрепленным, но его содержимое (блок данных) было изменено и должно быть записано на диск процессом DBWn перед удалением из кэша.
__________________
Телеграм чат

Последний раз редактировалось Marley; 20.09.2009 в 19:48.
Ответить с цитированием