Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Пул памяти

SQL Server динамически выделяет и освобождает память в пуле. Пул памяти содержит определенное количество памяти, которое разделяется между следующими компонентами:

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

  • память для соединений – используется каждым соединением с SQL Server; память для соединений содержит структуры данных, с помощью которых отслеживается контекст каждого пользователя; это информация о позиционировании курсора, значения параметров очереди и информация хранимых процедур;

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

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

  • кэш процедур – используется для хранения планов исполнения операторов T-SQL и хранимых процедур, когда происходит их выполнение.

Поскольку в случае использования динамического управления памятью распределение памяти динамически изменяется, пул памяти может все время увеличиваться или уменьшаться. Кроме того, указанные пять компонентов пула памяти тоже могут динамически изменять свои размеры. Это распределение недоступно для конфигурирования; управление осуществляет SQL Server. Например, когда требуется больше памяти, чтобы в кэше процедур можно было хранить больше операторов T-SQL, SQL Server может забирать часть памяти из буферного кэша и использовать её для кэша процедур.

Параметры конфигурирования памяти sql Server

Следующие параметры конфигурирования SQL Server связаны с конкретными аспектами распределения памяти. Их можно задать с помощью SQL Server Management Studio или с помощью хранимой процедуры sp_configure, которая также позволяет просмотреть значения этих параметров:

  • awe enabled (активизирована awe) – разрешает SQL Server использовать расширенную память; значение 1 для этого параметра активизирует эту память;

  • index create memory (память для создания индекса) – ограничивает количество памяти, используемое для сортировок при создании индекса; параметр index create memory является самоконфигурируемым; он не требует изменений в большинстве случаев, но можно попытаться увеличить значение этого параметра если время сортировки велико;

  • max server memory (максимальная память для сервера) – задаёт максимальное количество памяти, которое может захватить для пула памяти SQL Server; значение по умолчанию означает что SQL Server будет динамически захватывать и освобождать память; если задать одинаковые значения для этого параметра и параметра min server memory, то память будет выделяться статически;

  • min memory per query (минимальная память на один запрос) – задаёт минимальное количество памяти (в килобайтах), которое будет выделяться для выполнения одного запроса;

  • min server memory (минимальная память для сервера) – задаёт минимальное количество памяти, которое может захватить для пула памяти SQL Server;

  • set working set size (размер рабочего набора) – указывает, что для памяти, которую занял SQL Server, не допускается свопинг, даже если эта память может более эффективно использоваться другим процессом; параметр set working set size не должен использоваться, если для SQL Server задано динамическое использование памяти; его следует использовать, только когда для параметров min server memory и max server memory задано одинаковое значение; в этом случае SQL Server захватит определённое статическое количество памяти, не подлежащей страничному обмену.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]