Проблема
Предположим, что вы установили 64-разрядную версию Microsoft SQL Server 2014, 2016 или 2017 на компьютере с Windows Server 2012 или более ранней версией операционной системы Windows. Когда SQL Server использует все виртуальное адресное пространство пользовательского режима, в журнале ошибок SQL Server может появиться сообщение об ошибке нехватки памяти. Кроме того, выполнение запросов занимает много времени и наступает SOS_MEMORY_TOPLEVELBLOCKALLOCATOR ожидание.
При изучении следующих точек информации вы обнаружите, что доступное пространство виртуальных адресов очень низкое:
- DBCC MEMORYSTATUS - Раздел счетчиков процессов и системы - Доступная виртуальная память
- DMV: sys.dm_os_process_memory — столбец virtual_address_space_available_kb
Эти значения начинаются примерно с 8 терабайт (ТБ) в 64-разрядном процессе и продолжают снижаться и достигать нескольких гигабайт (ГБ).
Когда доступное пространство виртуальных адресов очень мало, запросы, пытающиеся выделить память, также могут столкнуться с типом ожидания CMEMTHREAD.
Увеличение количества следующих точек данных будет увеличиваться с течением времени.
- DMV: sys.dm_os_process_memory и sys.dm_os_memory_nodes — столбец virtual_address_space_reserved_kb
- DBCC MEMORYSTATUS - Раздел "Диспетчер памяти" - Зарезервирована виртуальная машина
Эти значения обычно увеличиваются кратно значению "максимальный объем памяти сервера" (почти до 8 ТБ).
Примечание Связанная проблема также описана в статье базы знаний 3074434.
Решение
Это обновление входит в следующие накопительные пакеты обновления для SQL Server:
Накопительный пакет обновления 4 для SQL Server 2017
Накопительный пакет обновления 8 для SQL Server 2016 с пакетом обновления 1 (SP1)
Накопительный пакет обновления 10 для SQL Server 2014 с пакетом обновления 2 (SP2)
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
Последний накопительный пакет обновления для SQL Server 2017
Последний накопительный пакет обновления для SQL Server 2016
Последний накопительный пакет обновления для SQL Server 2014
Примечание После применения этого обновления необходимо добавить флаг трассировки 8075 в качестве параметра запуска, чтобы включить это изменение.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.