Sintomi
Si supponga di installare la versione a 64 bit di Microsoft SQL Server 2014, 2016 o 2017 in un computer in cui è in esecuzione Windows Server 2012 o una versione precedente del sistema operativo Windows. Quando SQL Server usa tutti gli spazi degli indirizzi virtuali in modalità utente, è possibile che venga visualizzato un messaggio di errore di memoria insufficiente nel log degli errori di SQL Server. Inoltre, le query impiegano molto tempo per completare l'esecuzione e si verifica l'attesa SOS_MEMORY_TOPLEVELBLOCKALLOCATOR.
Quando si esaminano i punti di informazioni seguenti, si verifica che lo spazio degli indirizzi virtuali disponibile è molto basso:
-
Guida alla sezione DBCC MEMORYSTATUS-Process/System counts-memoria virtuale disponibile
-
DMV: sys.dm_os_process_memory-colonna virtual_address_space_available_kb
Questi valori iniziano per circa 8 terabyte (TB) in un processo x64 e continuano a scendere fino a raggiungere alcuni gigabyte (GB).
Quando ci si trova nella fase in cui lo spazio degli indirizzi virtuali disponibile è molto basso, le query che provano a eseguire l'allocazione della memoria possono anche incontrare un tipo di attesa di CMEMTHREAD.
I punti dati seguenti continueranno a essere aumentati nel tempo:
-
DMV: sys.dm_os_process_memory e sys.dm_os_memory_nodes-Column virtual_address_space_reserved_kb
-
DBCC MEMORYSTATUS-sezione Gestione memoria-VM riservata
Questi valori vengono in genere aumentati in multipli del valore "max server memory" fino a quasi 8 TB.
Nota il problema correlato è descritto anche in KB 3074434.
Risoluzione
Questo aggiornamento è incluso nei seguenti aggiornamenti cumulativi per SQL Server:
Aggiornamento cumulativo 4 per SQL Server 2017
Aggiornamento cumulativo 8 per SQL Server 2016 SP1
Aggiornamento cumulativo 10 per SQL Server 2014 Service Pack 2
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Ultimo aggiornamento cumulativo per SQL Server 2017
Nota Dopo aver applicato questo aggiornamento, è necessario aggiungere il flag di traccia 8075 come parametro di avvio per abilitare la modifica.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.