KB4077105 – RJEŠENJE: Pogreška nedostatka memorije kada je virtualni adresni prostor procesa SQL Server vrlo nizak u SQL Server

Primjenjuje se na
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)

Simptomi

Pretpostavimo da instalirate 64-bitnu verziju sustava Microsoft SQL Server 2014, 2016 ili 2017 na računalo sa sustavom Windows Server 2012 ili starijom verzijom operacijskog sustava Windows. Kada SQL Server potroši sav virtualni adresni prostor u korisničkom načinu rada, možda ćete primiti poruku o pogrešci nedostatka memorije u zapisniku o pogreškama SQL Server. Uz to, izvršavanje upita traje dulje vrijeme i dolazi do SOS_MEMORY_TOPLEVELBLOCKALLOCATOR čekanja.

Kada pregledate sljedeće točke informacija, vidjet ćete da je virtualnog adresnog prostora dostupno vrlo malo:

  • DBCC MEMORYSTATUS – odjeljak Proces/Brojevi sustava – Dostupna virtualna memorija
  • DMV: sys.dm_os_process_memory – stupac virtual_address_space_available_kb

Te vrijednosti počinju oko 8 terabajta (TB) u procesu x64, a nastavljaju se spuštati i dosežu nekoliko gigabajta (GB).

Kada ste u fazi u kojoj je dostupan prostor virtualne adrese vrlo nizak, upiti koji pokušavaju izvršiti dodjelu memorije također mogu naići na čekanje vrste CMEMTHREAD.

Sljedeće točke podataka nastavit će se povećavati tijekom vremena:

  • DMV: sys.dm_os_process_memory i sys.dm_os_memory_nodes – stupac virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS – odjeljak Upravitelj memorije – VM rezervirano

Te vrijednosti obično se povećavaju u višekratnicima vrijednosti "maksimalne memorije poslužitelja" do gotovo 8 TB.

Napomena Povezani problem opisan je i u članku iz baze znanja 3074434.

Rješenje

Ovo je ažuriranje obuhvaćeno sljedećim kumulativnim ažuriranjima za SQL Server:

Kumulativno ažuriranje 4 za SQL Server 2017

Kumulativno ažuriranje 8 za SQL Server 2016 SP1

Kumulativno ažuriranje 10 za SQL Server 2014 Service Pack 2

O kumulativnim ažuriranjima za SQL Server:

Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:

Najnovije kumulativno ažuriranje za SQL Server 2017

Najnovije kumulativno ažuriranje za SQL Server 2016

Najnovije kumulativno ažuriranje za SQL Server 2014

Napomena Kada primijenite to ažuriranje, morate dodati zastavicu praćenja 8075 kao parametar pokretanja da biste omogućili tu promjenu.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Reference

Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja.