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