Что такое оракул sga

Обновлено: 04.07.2024

Чтобы понять базу данных Oracle, в основном нам необходимо понять архитектуру памяти, то есть то, как память используется и для какой цели, а также основные процессы (архитектура процессов Oracle), которые используют эту память для межпроцессного взаимодействия.

В этом посте мы подробно рассмотрим архитектуру памяти Oracle.

  1. Системная глобальная область (SGA). Это большой разделяемый сегмент памяти, к которому в тот или иной момент будут иметь доступ практически все процессы Oracle.
  2. Глобальная область процесса (PGA): это память, которая является частной для одного процесса или потока; он недоступен из других процессов/потоков.
  3. Пользовательская глобальная область (UGA): это память, связанная с вашим сеансом. Он находится либо в SGA, либо в PGA, в зависимости от того, подключены ли вы к базе данных с помощью общего сервера (он будет в SGA) или выделенного сервера (он будет в PGA).

PGA (глобальная область программы или процесса)

PGA — это память, зарезервированная для каждого пользовательского процесса, подключающегося к базе данных Oracle, которая выделяется при создании процесса и освобождается при завершении процесса.

Содержание PGA:-

  • Частная область SQL. Содержит такие данные, как информация о привязке и структуры оперативной памяти. Он содержит Постоянную область, которая содержит информацию о привязке и освобождается только при закрытии курсора, и Область времени выполнения, которая создается в качестве первого шага запроса на выполнение. Эта область освобождается только после выполнения оператора. Количество частных областей SQL, которые могут быть выделены пользовательскому процессу, зависит от параметра инициализации OPEN_CURSORS.
  • Память сеанса. Состоит из памяти, выделенной для хранения переменной сеанса и другой информации, связанной с сеансом.
  • Рабочие области SQL: используются для операций с интенсивным использованием памяти, таких как: сортировка, хэш-соединение, слияние растровых изображений, создание растровых изображений.

Автоматическое управление памятью PGA

До автоматического управления памятью DBA должен был выделять память для:-

  • SORT_AREA_SIZE: общий объем ОЗУ, который будет использоваться для сортировки информации перед выгрузкой на диск.
  • SORT_AREA_RETAINED_SIZE: объем памяти, который будет использоваться для хранения отсортированных данных после завершения сортировки.
  • HASH_AREA_SIZE: объем памяти, который ваш серверный процесс может использовать для хранения хэш-таблиц в памяти. Эти структуры используются во время хеш-соединения, обычно при соединении большого набора с другим набором. Меньший из двух наборов будет хеширован в память, а все, что не помещается в область хеширования памяти, будет сохранено во временном табличном пространстве с помощью ключа соединения.

Чтобы включить управление автоматической памятью PGA, включите параметр WORKAREA_SIZE_POLICY и выделите общую память, которая будет использоваться для этой цели, для PGA_AGGREGATE_TARGET.

ПРИМЕЧАНИЕ. Начиная с версии 11gR1 вы можете установить MEMORY_TARGET, а автоматическое управление памятью как для SGA, так и для PGA будет обеспечено.

Я столкнулся с несколькими администраторами баз данных, которые интересовались, как распределяется память PGA, и из их камер я узнал о нескольких неправильных представлениях людей, поэтому написал короткую заметку по этому поводу.

PGA_AGGREGATE_TARGET — это цель верхнего предела. Это не значение, которое предварительно выделяется при запуске базы данных. Вы можете наблюдать это, установив для PGA_AGGREGATE_TARGET значение, намного превышающее объем физической памяти, доступной на вашем сервере. В результате вы не увидите большого выделения памяти. Последовательный сеанс (непараллельный запрос) будет использовать небольшой процент от PGA_AGGREGATE_TARGET, обычно около 5 процентов или меньше. Следовательно, не вся память, выделенная для PGA, предоставляется во время запуска БД и постепенно увеличивается с количеством пользовательских процессов. Алгоритм, о котором я знаю, выделяет 5% PGA пользовательскому процессу до тех пор, пока не возникнет кризис в PGA, а затем изменяет выделение в зависимости от требований использования пользовательского процесса.

SGA (система или общая глобальная область)

SGA

SGA используется для хранения информации базы данных, совместно используемой процессами базы данных. Он содержит данные и управляющую информацию для сервера Oracle и размещается в виртуальной памяти компьютера, на котором находится Oracle.

SGA состоит из нескольких структур памяти:-

  1. Буфер повторов. Буфер повторов — это место, где данные, которые необходимо записать в онлайн-журналы повторов, будут временно кэшироваться до того, как они будут записаны на диск. Поскольку передача данных из памяти в память намного быстрее, чем из памяти на диск, использование буфера журнала повторного выполнения может ускорить работу базы данных. Данные не будут находиться в буфере повторов очень долго.На самом деле, LGWR инициирует сброс этой области в одном из следующих сценариев:
    • Каждые три секунды,
    • Всякий раз, когда кто-то фиксирует
    • Когда LGWR запрашивает переключение файлов журнала
    • Когда буфер повторов заполняется на одну треть или содержит 1 МБ кэшированных данных журнала повторов.
  2. Буферный кеш. В блочном буферном кеше Oracle хранит блоки базы данных перед их записью на диск и после их считывания с диска. В SGA есть три места для хранения кэшированных блоков из отдельных сегментов:
    • Пул по умолчанию (горячий кэш): место, где обычно кэшируются все блоки сегментов.
    • Сохраняемый пул (теплый кэш): альтернативный буферный пул, в котором по соглашению вы назначаете сегменты, к которым достаточно часто обращаются, но которые все же устаревают из буферного пула по умолчанию из-за того, что другим сегментам требуется место.
    • Пул повторного использования (не заботиться о кэшировании): альтернативный буферный пул, в котором по соглашению вы назначаете большие сегменты, к которым вы обращаетесь очень случайным образом, и поэтому это может привести к чрезмерной очистке буфера многих блоков из многих сегментов. Кэшировать такие сегменты бесполезно, потому что к тому времени, когда вы снова захотите получить блок, он уже будет устарел из кеша. Вы должны отделить эти сегменты от сегментов по умолчанию и сохранить пулы, чтобы они не приводили к устареванию этих блоков из кэша.
  3. Общий пул. Общий пул — это место, где Oracle кэширует множество битов «программных» данных. Когда мы анализируем запрос, проанализированное представление кэшируется там. Прежде чем мы приступим к синтаксическому анализу всего запроса, Oracle просматривает разделяемый пул, чтобы убедиться, что работа уже выполнена. Код PL/SQL, который вы запускаете, кэшируется в общем пуле, поэтому при следующем запуске Oracle не нужно снова считывать его с диска. Здесь код PL/SQL не только кэшируется, но и используется совместно. Если у вас есть 1000 сеансов, выполняющих один и тот же код, только одна копия кода загружается и используется всеми сеансами. Oracle хранит системные параметры в общем пуле. Здесь хранится кэш словаря данных (кэшированная информация об объектах базы данных). Общий пул управляет памятью на основе LRU, аналогично буферному кешу, который идеально подходит для кэширования и повторного использования данных.
  4. Большой пул. Большой пул назван так не потому, что представляет собой «большую» структуру (хотя вполне может быть и большим по размеру). Он назван так потому, что используется для выделения больших фрагментов памяти, которые больше, чем общий пул предназначен для обработки. Выделение больших объемов памяти имеет тенденцию получать кусок памяти, использовать его, а затем делать с ним. Не было необходимости кэшировать эту память, как в буферном кеше и Shared Pool, поэтому был выделен новый пул. Таким образом, общий пул больше похож на Keep Pool, тогда как Large Pool похож на Recycle Pool. Большой пул используется, в частности:
    • Совместно используемыми подключениями к серверу для выделения области UGA в SGA.
    • Параллельное выполнение операторов, позволяющее выделить буферы межпроцессных сообщений, которые используются для координации параллельных серверов запросов.
    • Резервное копирование буферов дискового ввода-вывода RMAN в некоторых случаях.
  5. Пул Java. Пул Java используется по-разному в зависимости от режима, в котором работает сервер Oracle. В режиме выделенного сервера общий объем памяти, необходимой для пула Java, довольно скромен и может быть определен на основе количества классов Java, которые вы будете использовать. При подключении к общему серверу пул Java включает в себя общую часть каждого класса Java и часть UGA, используемую для состояния каждого сеанса, которая выделяется из JAVA_POOL в SGA.
  6. Пул потоков. Пул потоков (или до 10 процентов общего пула, если пул потоков не настроен) используется для буферизации сообщений очереди, используемых процессом потоков при перемещении или копировании данных из одной базы данных в другую.< /li>

Автоматическое управление памятью SGA

Установив для параметра SGA_TARGET ненулевое значение (значение, которое вы решили выделить для SGA), включается автоматическое управление памятью SGA. Для этого параметру Statistics_level необходимо задать значение TYPICAL или ALL. Если сбор статистики не включен, в базе данных не будет исторической информации, необходимой для принятия необходимых решений по размеру.

SGA_TARGET может иметь динамический размер во время работы базы данных в соответствии с настройкой параметра SGA_MAX_SIZE. По умолчанию он равен SGA_TARGET, поэтому, если вы планируете увеличить SGA_TARGET, вы должны установить большее значение SGA_MAX_SIZE перед запуском экземпляра базы данных.

ПРИМЕЧАНИЕ. Начиная с версии 11gR1 вы можете установить MEMORY_TARGET, а автоматическое управление памятью как для SGA, так и для PGA будет обеспечено.

В этой главе обсуждается архитектура памяти экземпляра Oracle.

Эта глава содержит следующие темы:

Введение в структуры памяти Oracle

Oracle использует память для хранения следующей информации:

Информация о подключенном сеансе, даже если он в данный момент не активен

Информация, необходимая во время выполнения программы (например, текущее состояние запроса, из которого извлекаются строки)

Информация, которая используется и передается между процессами Oracle (например, информация о блокировках)

Кэшированные данные, которые также постоянно хранятся в периферийной памяти (например, блоки данных и записи журнала повторов)

Основные структуры памяти, связанные с Oracle, включают:

Системная глобальная область (SGA), совместно используемая всеми серверными и фоновыми процессами.

Глобальные области программы (PGA), которые являются частными для каждого сервера и фонового процесса; для каждого процесса существует один PGA.

Области кода программного обеспечения — это еще одна базовая структура памяти.

Обзор глобальной области системы

Системная глобальная область (SGA) — это группа структур общей памяти, которые содержат данные и управляющую информацию для одного экземпляра базы данных Oracle. Если несколько пользователей одновременно подключены к одному и тому же экземпляру, данные в SGA экземпляра совместно используются пользователями. Следовательно, SGA иногда называют общей глобальной областью .

Процессы SGA и Oracle составляют экземпляр Oracle. Oracle автоматически выделяет память для SGA при запуске экземпляра, а операционная система освобождает память при завершении работы экземпляра. Каждый экземпляр имеет свой собственный SGA.

SGA доступен для чтения и записи. Все пользователи, подключенные к экземпляру базы данных с несколькими процессами, могут считывать информацию, содержащуюся в SGA экземпляра, а несколько процессов выполняют запись в SGA во время выполнения Oracle.

SGA содержит следующие структуры данных:

Кэш буфера базы данных

Буфер журнала повторов

Большой бассейн (необязательно)

Кэш словаря данных

Другая разная информация

Часть SGA содержит общую информацию о состоянии базы данных и экземпляра, к которым фоновые процессы должны получить доступ; это называется фиксированным SGA. Никакие пользовательские данные здесь не хранятся. SGA также включает информацию, передаваемую между процессами, например информацию о блокировке.

Если в системе используется архитектура с общим сервером, очереди запросов и ответов, а также некоторое содержимое PGA находятся в SGA.

"Введение в экземпляр Oracle" для получения дополнительной информации об экземпляре Oracle

Параметр инициализации SGA_MAX_SIZE

SGA состоит из ряда компонентов памяти, которые представляют собой пулы памяти, используемые для удовлетворения определенного класса запросов на выделение памяти. Примеры компонентов памяти включают общий пул (используемый для выделения памяти для выполнения SQL и PL/SQL), пул java (используемый для объектов java и другой памяти выполнения java) и буферный кеш (используемый для кэширования дисковых блоков). Все компоненты SGA выделяют и освобождают пространство в единицах гранул. Oracle Database отслеживает использование памяти SGA по внутреннему количеству гранул для каждого компонента SGA.

Размер гранул определяется общим размером SGA. На большинстве платформ размер гранулы составляет 4 МБ, если общий размер SGA меньше 1 ГБ, а размер гранулы — 16 МБ для больших SGA. Возникают некоторые зависимости от платформы. Например, в 32-разрядной версии Windows размер гранулы составляет 8 МБ для SGA размером более 1 ГБ.

Oracle Database может устанавливать ограничения на объем виртуальной памяти, используемой базой данных для SGA. Он может запускать экземпляры с минимальным объемом памяти и разрешать экземпляру использовать больше памяти, расширяя память, выделенную для компонентов SGA, до максимума, определяемого параметром инициализации SGA_MAX_SIZE. Если значение SGA_MAX_SIZE в файле параметров инициализации или файле параметров сервера ( SPFILE ) меньше суммы памяти, выделенной для всех компонентов либо явно в файле параметров, либо по умолчанию во время инициализации экземпляра, то база данных игнорирует параметр SGA_MAX_SIZE .

Для оптимальной производительности в большинстве систем вся SGA должна помещаться в реальной памяти. Если это не так и если для хранения ее частей используется виртуальная память, общая производительность системы базы данных может резко снизиться. Причина этого в том, что части SGA выгружаются (записываются на диск и читаются с диска) операционной системой. Объем памяти, выделенный для всех общих областей в SGA, также влияет на производительность.

Размер SGA определяется несколькими параметрами инициализации. Следующие параметры оказывают наибольшее влияние на размер SGA:

< tbody>
Параметр Описание
DB_CACHE_SIZE Размер кеша стандартных блоков.
LOG_BUFFER Количество байтов, выделенных для буфера журнала повторов.
SHARED_POOL _SIZE Размер в байтах области, отведенной под общий Операторы SQL и PL/SQL.
LARGE_POO L_SIZE Размер большой бассейн; по умолчанию 0.
JAVA_POO L_SIZE Размер Java пул.

Автоматическое управление общей памятью

В предыдущих выпусках баз данных администратор базы данных (DBA) должен был вручную указывать различные размеры компонентов SGA, устанавливая ряд параметров инициализации, включая параметры SHARED_POOL_SIZE, DB_CACHE_SIZE, JAVA_POOL_SIZE и LARGE_POOL_SIZE. Oracle Database 10g включает функцию автоматического управления общей памятью, которая значительно упрощает управление памятью SGA. В Oracle Database 10g администратор баз данных может просто указать общий объем памяти SGA, доступной для экземпляра, с помощью параметра инициализации SGA_TARGET, и Oracle Database автоматически распределит эту память между различными подкомпонентами, чтобы обеспечить наиболее эффективное использование памяти.

Когда автоматическое управление памятью SGA включено, размеры различных компонентов SGA являются гибкими и могут адаптироваться к потребностям рабочей нагрузки без дополнительной настройки. База данных автоматически распределяет доступную память между различными компонентами по мере необходимости, позволяя системе максимально использовать всю доступную память SGA.

Рассмотрите ручную настройку, в которой 1 ГБ памяти доступен для SGA и распределяется по следующим параметрам инициализации:

Если приложение пытается выделить более 128 МБ памяти из общего пула, возникает ошибка, указывающая, что доступный общий пул исчерпан. В буферном кеше может быть свободная память, но эта память недоступна для общего пула. Чтобы обойти эту проблему, вам придется вручную изменить размер буферного кеша и общего пула.

При автоматическом управлении SGA можно просто установить для параметра инициализации SGA_TARGET значение 1G . Если приложению требуется больше памяти общего пула, оно может получить эту память из свободной памяти в буферном кеше.

Установка одного параметра значительно упрощает задачу администрирования. Вы указываете только объем памяти SGA, доступный экземпляру, и забываете о размерах отдельных компонентов. Ошибки нехватки памяти не генерируются, если в системе действительно не хватает памяти.

Автоматическое управление SGA может повысить производительность рабочей нагрузки, не требуя дополнительных ресурсов или ручной настройки. При ручной настройке SGA возможно, что скомпилированные операторы SQL часто устаревают из общего пула из-за его неадекватного размера. Это может увеличить частоту жестких синтаксических анализов, что приведет к снижению производительности. Когда автоматическое управление SGA включено, внутренний алгоритм настройки отслеживает производительность рабочей нагрузки, увеличивая общий пул, если он определяет, что увеличение уменьшит количество необходимых синтаксических анализов.

Системная глобальная область (SGA) — это группа областей общей памяти, предназначенных для «экземпляра» Oracle. (экземпляр — это ваши программы базы данных и оперативная память).

Все процессы Oracle используют SGA для хранения информации. SGA используется для хранения входящих данных (буферы данных, как определено параметром db_cache_size) и внутренней управляющей информации, необходимой базе данных. Вы управляете объемом памяти, выделяемой SGA, устанавливая некоторые «параметры инициализации» Oracle. Это могут быть db_cache_size, shared_pool_size и log_buffer.

В Oracle Database 10g вам нужно определить только два параметра (sga_target и sga_max_size), чтобы настроить SGA. Если эти параметры настроены, Oracle рассчитает, сколько памяти нужно выделить различным областям SGA, используя функцию, называемую автоматическим управлением памятью (AMM). По мере накопления опыта вы, возможно, захотите вручную выделить память для каждой отдельной области SGA с параметрами инициализации.

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

* Буферный кеш (db_cache_size)

* Общий пул (shared_pool_size)

* Буфер журнала повторов (log_buffer)

Давайте рассмотрим эти области памяти более подробно.

Примечание. AMM и динамическое управление памятью Oracle связаны с измеримыми накладными расходами. См. мои важные заметки об управлении динамической памятью Oracle. Также см. мои заметки о глобальной пользовательской области Oracle (UGA).

В кэше буфера данных

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

Общее пространство в буферном кэше базы данных подразделяется Oracle на единицы хранения, называемые «блоками». Блоки — это наименьшая единица хранения в Oracle, и вы управляете размером блока файла данных при распределении файлов базы данных.

Блок Oracle отличается от блока диска. Блок Oracle — это логическая конструкция — создание Oracle, а не внутренний размер блока операционной системы. Другими словами, вы предоставляете Oracle большую доску, а Oracle берет ручки и рисует на доске несколько прямоугольников одинакового размера. Доска — это память, а блоки, которые создает Oracle, — это отдельные блоки памяти.

Каждый блок внутри файла определяется вашим параметром db_block_size и размером вашего ?default? блоки определяются при создании базы данных. Вы управляете размером блока базы данных по умолчанию, а также можете определять табличные пространства с различными размерами блоков. Например, многие профессионалы Oracle помещают индексы в блок размером 32 КБ, а файлы данных оставляют в блоке размером 16 КБ.

Google: «оракул с несколькими размерами блоков»?

Когда Oracle получает запрос на получение данных, он сначала проверяет структуры внутренней памяти, чтобы убедиться, что данные уже находятся в буфере. Эта практика позволяет серверу избежать ненужных операций ввода-вывода. В идеальном мире администраторы баз данных могли бы создать один буфер для каждой страницы базы данных, тем самым гарантируя, что Oracle Server будет считывать каждый блок только один раз.

Параметры db_cache_size и shared_pool_size определяют большую часть размера области памяти, которую Oracle использует при запуске, и определяют объем хранилища, доступный для кэширования блоков данных, SQL и хранимых процедур.

Google: ?размер oracle sga?

Размер буферного пула по умолчанию (64 КБ) слишком мал. При настройке Oracle рекомендуется установить для этого параметра значение 1 м.

Это отрывок из бестселлера Easy Oracle Jumpstart Роберта Фримена и Стива Карама (Oracle ACE и Oracle Certified Master). Это всего 19,95 долларов США при покупке напрямую у издателя здесь.


Бурлесон — американская команда


Примечание. Эта документация по Oracle была создана в качестве справочника по поддержке и обучению Oracle для использования нашими специалистами-консультантами по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем форуме Oracle.

Проверьте опыт! Любой, кто рассматривает возможность использования услуг эксперта службы поддержки Oracle, должен самостоятельно проверить свои полномочия и опыт, а не полагаться на рекламу и самопровозглашенный опыт. Все законные эксперты Oracle публикуют свои квалификации Oracle.

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle. Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:


и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

Мы можем рассмотреть Память в двух основных главах. Сначала вы должны посмотреть на скриншот ниже, чтобы понять компоненты памяти.


< /p>

SGA (системная глобальная область):

Это область памяти, совместно используемая всеми серверными и фоновыми процессами.

Он также известен как «Общая глобальная зона».

SGA состоит из следующих компонентов.

Автоматическое управление общей памятью

Все компоненты SGA выделяют и освобождают области в единицах гранул.

Во многих SGA размером менее 1 ГБ размер гранулы составляет 4 МБ. В больших SGA размер гранул составляет 16 МБ.

Что такое SGA_TARGET?

Если вы не задали параметр инициализации SGA_TARGET, вы должны установить вышеуказанные компоненты один за другим.

Если вы установите параметр SGA_TARGET, вам не нужно устанавливать эти компоненты.

Oracle разделяет установленное вами значение SGA_TARGET с этими компонентами.

Этот процесс называется автоматическим управлением общей памятью.

Что такое SGA_MAX_SIZE?

Есть параметр SGA_MAX_SIZE. Этот параметр указывает максимальный объем памяти, доступный SGA.

При изменении этого параметра необходимо перезапустить экземпляры, используемые базой данных.

Вы можете увеличить SGA_TARGET до SGA_MAX_SIZE, не выполняя никаких операций перезапуска.

После установки SGA_TARGET оракул анализирует рабочую нагрузку системы и распределяет память между вышеуказанными компонентами sga. Если вы установите SGA_TARGET в sp_file, распределение памяти будет автоматически выполняться в соответствии с последним известным распределением памяти в случае перезапуска экземпляра. Таким образом, ненужная нагрузка на систему повторно не анализируется.

Если вы установите SGA_TARGET, пул буферов сохранения (для хранения блоков данных указанной схемы в памяти) и пул буферов повторного использования (для удаления ненужных блоков данных из памяти) не устанавливаются автоматически.

Вы можете выполнить настройки, используя параметры DB_KEEP_CACHE_SIZE и DB_RECYCLE_CACHE_SIZE.

Автоматическое управление памятью

Если вы установите MEMORY_TARGET, SGA и PGA будут автоматически установлены оракулом. Этот процесс называется автоматическим управлением памятью.

Ручное управление памятью

Если вы вручную устанавливаете все компоненты, этот процесс называется ручным управлением памятью.

С помощью представления V$BUFFER_POOL вы можете проверить размер кеша.

С помощью представления V$SGASTAT вы можете получить информацию о компонентах SGA.

Компоненты SGA

Давайте рассмотрим компоненты SGA один за другим.

Кэш буфера базы данных

Это часть SGA, в которой хранятся блоки данных, считанные из файлов данных.

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

Написать список

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

Список LRU (наименее использовавшихся)

Свободные буферы, закрепленные буферы и грязные буферы, которые не были переданы в список записи, сохраняются в списке LRU.

Free Buffer — это готовый к использованию буфер.

Закрепленный буфер — это буфер, к которому в данный момент обращаются некоторые процессы.

Какова роль буферного кеша базы данных?

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

Если он не находит его здесь, он извлекает данные с диска в буферный кеш и считывает их из буферного кеша базы данных.

При передаче данных в буферный кеш базы данных сначала проверяется, есть ли в памяти свободный буфер.

При поиске свободного буфера, если в списке LRU есть грязный буфер, этот грязный буфер будет передан в список записи.

Существует ограничение на данные поиска в буферном кеше.

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

При обнаружении свободного буфера данные передаются в MRU (самые последние использованные) в конце списка LRU.

При полном сканировании таблицы данные передаются в PGA в обход SGA.

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

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

Читайте также: