View on GitHub

Db2-Russian

IBM Db2 по-русски

Использование оперативной памяти

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

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

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

Основные области памяти DB2

Общая память, используемая экземпляром СУБД, включает в себя:

На уровне базы данных принято различать:

Глобальная область базы данных состоит из следующих основных компонентов:

Суммарный объем глобальной области базы данных ограничен параметром DATABASE_MEMORY.

Область данных приложений включает в себя:

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

Управление оперативной памятью при выполнении операций сортировки

При выполнении многих видов операций СУБД требуется осуществить сортировку данных, поэтому управлению оперативной памятью, используемой для сортировки, уделяется особое внимание.

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

Параметры, управляющие выделением оперативной памяти для сортировки:

В Db2 поддерживается три модели управления памятью сортировки:

Использование общей (глобальной) памяти для выполнения операций сортировки предоставляет ряд важных преимуществ:

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

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

Наличие большого количества различных областей оперативной памяти и параметров, регулирующих их объем, может требовать значительных усилий для ручной настройки сервера Db2. Поэтому, начиная с версии 9, IBM Db2 поддерживает автоматическое управление распределением оперативной памяти между различными областями с использованием самонастраивающегося менеджера памяти (STMM, Self-Tuning Memory Manager).

Если функция самонастройки включена, STMM динамически распределяет доступные ресурсы памяти между потребителями оперативной памяти в базе данных. STMM реагирует на изменения характеристик рабочей нагрузки, регулируя значения параметров конфигурирования памяти и размер буферных пулов для оптимизации производительности. Чтобы включить STMM, необходимо установить для параметра конфигурации базы данных SELF_TUNING_MEM значение ON.

Автоматическое управление распределением памяти ведётся для тех областей памяти, для которых оно было явно разрешено. При установке значения параметра конфигурации командами UPDATE DBM CFG и UPDATE DB CFG, для использования STMM после значения параметра указывается ключевое слово AUTOMATIC. Указанное при этом числовое значение параметра используется как начальное, далее STMM осуществляет периодическую корректировку значений с учетом текущей нагрузки, перераспределяя оперативную память между различными потребителями.

Автоматическое управление средствами STMM поддерживается для следующих параметров: