2015-02-20 2 views
1

DBWR Процессы записывают грязные блоки из буферного кеша в файлы данных.
Документация сообщает, что блоки считываются в буферный кеш, прежде чем они будут сформированы в результирующий набор. Но «кто« делает это? Как вы называете этот процесс?Какой процесс считывает блоки в буферный кеш?

ответ

3

overview of server processes От:

Oracle Database создает серверные процессы для обработки запросов клиентских процессов, связанных с экземпляром. Клиентский процесс всегда взаимодействует с базой данных через отдельный серверный процесс.

Серверные процессы, созданные от имени приложения базы данных может выполнить одно или несколько из следующих задач:

  • Разбор и запустить SQL заявления, сделанные с помощью приложения, в том числе создание и выполнение плана запроса (см " Этапы обработки SQL ")

  • Execute PL/SQL код

  • прочитанной блоки данных из файлов данных в кэше буферов базы данных (фоновый процесс DBWn имеет задачу ш riting измененных блоков на диск)

  • Возвращаемых результаты таким образом, что приложение может обрабатывать информацию

Таким образом, каждый выделенный или общий процесс сервера заполняющего кэш буфера, как она считывает данные из диск.

Записывание измененных блоков осуществляется с помощью общего процесса обработки данных DBWR, поэтому он может быть асинхронным и также может сочетать изменения с нескольких сеансов. Обычно вы не хотите, чтобы ваше приложение ждало (медленно) записи физического диска, когда это не нужно; он должен ждать, пока данные будут прочитаны, поэтому не будет большой пользы в том, чтобы сделать его отдельным фоновым процессом.

Вы явно не называете этот процесс, его просто обрабатывают за кулисами.

+0

Большое спасибо, отличный ответ. Я знаю, что вы явно не называете (большинство) процессов в оракуле, но однажды я не дал интервью на вопрос, подобный этому ... – miraclefoxx

1

Процесс каждого сеанса клиента считывает файлы данных.

Поэтому формула для предела ядра ОС для числа открытых файлов содержит:

#processes * #datafiles 

Вы также можете легко проверить его с помощью lsof на Linux.

Смежные вопросы