разделяемого пула. Если у вас запланирован запуск некоторого задания на
определенное время дня, вы можете написать простой сценарий, выполняемый
перед запуском задания, который модифицирует выделение памяти среди
различных компонентов. После завершения задания можете запустить другой
сценарий, который вернет распределение памяти обратно к исходным
установкам.
В следующих нескольких разделах мы обсудим различные компоненты SGA. Вы
может управлять SGA самостоятельно, выполняя калибровку памяти,
выделяемой экземпляру Oracle, с изменением требований к памяти работающего
экземпляра. Однако лучший способ управления SGA (так же, как и PGA) состоит
просто в адаптации менеджмента памяти.
Буферный кэш базы данных
Буферный кэш базы данных состоит из буферов памяти, которые Oracle
использует для хранения данных, прочитанных серверным процессом из файлов
данных на диске в ответ на запросы пользователей. Доступ к буферному кэшу,
конечно же, осуществляется намного быстрее, чем чтение данных из дискового
хранилища. Когда пошльзовательмодифицирует данные, эти изменения
проводятся также в буферном кэше базы данных. Поэтому буферный кэш
содержит как оригинальные блоки, прочитанные с диска, так и измененные блоки,
которые подлежат записи на диск.
Буферы памяти в буферном кэше базы данных можно разделить на три группы:
Свободные буферы. Это буферы, которые не содержат полезных данных, и
потому база данных может использовать их для хранения данных, прочитанных с
диска.
Грязные буферы. Здесь хранятся данные, которые были прочитаны с диска и
затем модифицированы, но еще не записаны в файлы данных на диске.
Занятые (pinned) буферы. Это буферы данных, находящиеся в активном
использовании пользовательским сеансом.
Когда пользовательский процесс запрашивает данные, Oracle сначала проверяет
наличие этих данных в буферном кэше. Если они там, то серверный процесс
читает эти данные непосредственно из SGA и отправляет пользователю. Если
данные не найдены в буферном кэше, серверный процесс читает их из
соответствующих файлов данных на диске и помещает в буферный кэш базы
данных. Конечно, при этом должны быть свободные буферы, доступные в
буферном кэше, чтобы данных о том, чтобы он записал некоторые грязные
буферы на диск, освободив тем самым место для новых данных.
Oracle поддерживает список LRU свободных, занятых и «грязных» буферов в
памяти. В обязанности процесса писателя базы данных входит запись грязных
буферов на диск, чтобы обеспечить постоянное наличие свободных буферов в
буферном кэше базы данных. Чтобы определить, какие грязные буферы подлежат
записи на диск, Oracle использует модифицированный алгоритм LRU, который
гарантирует присутствие в буферном кэше только наиболее свежих данных.
Запись на диск данных, которые в данный момент не запрашиваются, повышает
производительность базы данных.
Чем больше буферный кэш, тем меньше требуется операций записи чтения и
выше производительность базы данных. Таким образом, правильное определение
размера буферного кэша очень важно для производительности вашей базы
данных. Конечно, простое назначение чрезвычайно большого буферного кэша
может повредить производительности, потому что вы можете занять больше
памяти, чем необходимо и тем вызвать нежелательный своппинг на вашем
сервере.
Do'stlaringiz bilan baham: |