Что такое СИМУЛЯТОР Oracle KGL?

Что это за штука, называемая СИМУЛЯТОРОМ KGL, и как разработчики приложений могут управлять использованием памяти?

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

ORA-04031: unable to allocate 4032 bytes of shared memory ("shared pool","select text from > view$ where...","sga heap(3,0)","kglsim heap")

Я читал сообщения на форуме через Google, в которых говорилось, что kglsim связан с KGL SIMULATOR, но нет определения этого компонента или каких-либо советов для разработчиков.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
3 622
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я обнаружил, что KGL означает «Общая библиотека ядра».

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

Ответ принят как подходящий

KGL = Kernel General Library cache manager, как следует из названия, он имеет дело с объектами библиотеки, такими как курсоры, кешированные определения сохраненных объектов (хранимые процедуры PL / SQL, определения таблиц и т. д.).

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

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

Используя эту информацию о том, сколько (повторных) загрузок объекта кэша библиотеки можно было бы избежать, если бы кеш был больше (благодаря истории симулятора KGL), и зная, сколько времени потребовалось для перезагрузки объекта, Oracle может предсказать, сколько времени было бы сохраняется в масштабе всего экземпляра, если общий пул был больше. Это видно из v $ library_cache_advice.

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

v $ sgastat будет первой точкой для устранения ошибок ORA-4031, вам нужно определить, сколько свободной памяти у вас есть в общем пуле (и кто использует большую часть памяти).

- Танель Подер http://blog.tanelpoder.com

Другие вопросы по теме