Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Windows
Расширение буферного пула интегрирует хранилище SSD с пулом буферов ядро СУБД, чтобы повысить производительность базы данных без повышения затрат на дополнительную память.
Расширение буферного пула недоступно в каждом выпуске SQL Server. Дополнительные сведения см. в выпусках и поддерживаемых функциях SQL Server 2025.
Преимущества расширения буферного пула
Поскольку операции дискового ввода-вывода могут завершаться относительно долго, они становятся узким местом производительности во многих рабочих нагрузках.
Типичный подход к сокращению операций ввода-вывода диска — добавить больше памяти для использования в качестве кэша данных. Хотя и полезно, недостатком этого подхода является высокая стоимость памяти.
Функция расширения буферного пула расширяет кэш буферного пула за счёт использования энергонезависимого хранилища, например локальных SSD-накопителей. С помощью этого расширения буферный пул может разместить больший рабочий набор баз данных, заменив значительную часть более медленного удаленного ввода-вывода более быстрым локальным виртуальным диском SSD. Из-за меньшей задержки и повышения производительности операций ввода-вывода для SSD расширение буферного пула может повысить производительность, особенно с более медленными удаленными системами ввода-вывода.
В следующем списке приведены преимущества расширения буферного пула.
- Увеличение пропускной способности ввода-вывода
- Уменьшенная задержки ввода-вывода
- Повышенная пропускная способность транзакций
- Улучшенная производительность операций чтения с использованием крупного гибридного буферного пула
- Архитектура кэширования, которая может использовать современные и будущие недорогие диски
Основные понятия расширения буферного пула
Следующие термины относятся к компоненту расширения буферного пула.
| Срок | Описание |
|---|---|
| буфер | В ядро СУБД буфер является страницей размером 8 КБ в памяти, тем же размером, что и страница данных или индекса. Буферный кэш делится на 8-килобайтовые страницы. Страница остается в кэше буфера, пока диспетчер буферов не нуждается в области буфера для чтения дополнительных данных. Данные записываются обратно на диск, только если они изменяются. Эти измененные страницы в памяти называют «грязными». Страница очищается, если она эквивалентна его образу базы данных на диске. Данные в буферном кэше могут измениться несколько раз, прежде чем будут сохранены обратно на диске. |
| буферный пул | Также называется кэша буфера. Все базы данных используют буферный пул в качестве глобального ресурса для их кэшированных страниц данных. Процесс запуска или sp_configure динамически настраивает экземпляр ядро СУБД, чтобы определить максимальный и минимальный размер кэша буферного пула. Этот размер определяет максимальное количество страниц, которые экземпляр может кэшировать в буферном пуле. Давление внешней памяти может уменьшить размер буферного пула и ограничить память, которую может кэшировать расширение буферного пула. |
| контрольной точки | Контрольная точка создает известную хорошую точку, из которой ядро СУБД может начать применять изменения, содержащиеся в журнале транзакций во время восстановления после неожиданного завершения работы или сбоя. Контрольная точка записывает грязные страницы и сведения журнала транзакций из памяти на диск. Дополнительные сведения см. в контрольных точках базы данных (SQL Server). |
Архитектура расширения буферного пула
С помощью расширения буферного пула можно использовать хранилище SSD в качестве расширения подсистемы памяти, а не часть подсистемы диска. Файл расширения буферного пула позволяет диспетчеру буферного пула использовать память флэш-памяти DRAM и NAND для поддержания гораздо большего пула буферов страниц на SSD.
Эта архитектура создает многоуровневую иерархию кэширования с уровнем 1 (L1) в качестве DRAM и уровня 2 (L2) в качестве файла расширения буферного пула на SSD. В кэш L2 записываются только чистые страницы, что позволяет обеспечить безопасность данных. Диспетчер буферов обеспечивает перемещение чистых страниц между кэшами L1 и L2.
На следующем рисунке представлен общий обзор архитектуры буферного пула относительно других компонентов ядро СУБД.
Если включить расширение буферного пула, укажите размер и путь к файлу кэширования буферного пула на SSD. Этот файл представляет собой непрерывную область хранения на SSD и статически конфигурируется во время запуска экземпляра компонента ядро СУБД. Параметры конфигурации файла можно изменить только при отключении функции расширения буферного пула. При отключении расширения буферного пула система удаляет все связанные параметры конфигурации из реестра. Система удаляет файл расширения буферного пула после ядро СУБД завершения работы.
Конфигурация расширения буферного пула
Используется ALTER SERVER CONFIGURATION для настройки расширения буферного пула.
Система рассматривает физическую память, доступную для экземпляра ядро СУБД при запуске, чтобы обеспечить минимальный и максимальный размер расширения буферного пула.
Максимальный размер
Максимальный размер расширения буферного пула зависит от выпуска SQL Server и отличается для физических и виртуальных машин.
Если вы настроите максимальный размер, ядро СУБД возвращает ошибку 864 и не включает расширение буферного пула.
Выпуски SQL Server Enterprise, Enterprise Developer и Developer поддерживают до 32-кратного объёма физической памяти.
Выпуски SQL Server Standard и Standard Developer на физических серверах поддерживают до 4 раз больший объём физической памяти.
До 512 ГБ в SQL Server 2022 (16.x) и более ранних версий.
До 1 ТБ в SQL Server 2025 (17.x) и более поздних версий.
Выпуски SQL Server Standard и Standard Developer на виртуальных машинах поддерживают объём физической памяти до 16 раз больше.
Дополнительные сведения см. в выпусках и поддерживаемых функциях SQL Server 2025.
Минимальный размер
Размер расширения буферного пула должен быть больше, чем наименьшие значения физической памяти и максимальной памяти сервера (МБ ). Если настроенный размер меньше этого минимума, ядро СУБД вызывает ошибку 868. Если настроенный размер меньше этого минимума при запуске экземпляра, ошибка 861 регистрируется и расширение буферного пула не включено.
Поведение при изменении конфигурации
При включенном расширении можно увеличить max server memory (MB) до значения, превышающего размер расширения буферного пула. ядро СУБД записывает информационное сообщение (ошибка 5866) и применяет изменение. Однако, поскольку новое значение нарушает минимальное требование размера, расширение буферного пула отключено при следующем перезапуске экземпляра.
Если включить расширение буферного пула с указанным ниже max server memory (MB)размером, операция завершается ошибкой 868.
Рекомендации по расширению буферного пула
Учитывайте приведенные ниже рекомендации.
- После первого включения расширения буферного пула перезапустите экземпляр ядро СУБД, чтобы получить максимальное преимущество производительности.
- Задайте расширение буферного пула, чтобы соотношение между размером физической памяти и размером расширения буферного пула было равно 1:16 или меньше. Более низкое соотношение в диапазоне от 1:4 до 1:8 может быть оптимальным. Для получения информации о настройке параметра
max server memory (MB)см. параметры конфигурации памяти сервера. - Тщательно протестируйте расширение буферного пула перед реализацией его в рабочей среде. После запуска в рабочей среде избегайте внесения изменений в конфигурацию файла или отключения этой функции. Эти действия могут негативно повлиять на производительность сервера, так как буферный пул значительно уменьшается при отключении функции. При отключении память, используемая для поддержки функции, не будет восстановлена до перезапуска экземпляра SQL Server. Однако если функция включена повторно, память повторно используется без перезапуска экземпляра.
Мониторинг расширения буферного пула
Можно использовать следующие динамические административные представления для отображения конфигурации расширения буферного пула и получения сведений о страницах данных в расширении.
Счетчики производительности доступны в объекте SQL Server, Buffer Manager чтобы отслеживать страницы данных в файле расширения буферного пула. Дополнительные сведения см. в разделе SQL Server, объект Buffer Manager.
Следующие расширенные события доступны для мониторинга расширения буферного пула.
| Событие | Описание |
|---|---|
buffer_pool_extension_pages_written |
Срабатывает, когда страница или группа страниц извлекаются из буферного пула и записываются в файл расширения буферного пула. |
buffer_pool_extension_pages_read |
Возникает при перемещении страницы из файла буферного расширения в буферный пул. |
buffer_pool_extension_pages_evicted |
Возникает, когда страница удаляется из файла расширения буферного пула. |
buffer_pool_eviction_thresholds_recalculated |
Срабатывает при пересчёте порогов вытеснения. |