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