KB4077105 — ИСПРАВЛЕНО: ошибка нехватки памяти, когда в виртуальном адресном пространстве процесса SQL Server очень мало SQL Server

Применяется к
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Проблема

Предположим, что вы установили 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, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.