Problemi di interoperabilità tra l'elaborazione in modalità batch e il modello di memoria di pagine di grandi dimensioni
Questo articolo illustra come risolvere i problemi di prestazioni e stabilità derivanti dall'uso dell'elaborazione in modalità batch in columnstore e rowstore con modello di memoria a pagine di grandi dimensioni in SQL Server.
Versione originale del prodotto: SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, SQL Server 2019, SQL Server 2022
Numero KB originale: 3210239
Sintomi
In un'istanza di SQL Server si usa il flag di traccia 834 o il flag di traccia 876 come flag di avvio. Questa operazione può essere stata eseguita per abilitare allocazioni di pagine di grandi dimensioni da gestione memoria di SQL Server per migliorare le prestazioni dell'istanza a 64 bit.
Usare gli indici columnstore o l'elaborazione in modalità batch in rowstore.
In questo scenario si verificano uno o più dei problemi seguenti:
Errore dell'Utilità di pianificazione senza rendimento e dump di memoria associati nel log degli errori di SQL Server.
Le query che usano l'elaborazione in modalità batch possono verificarsi gravi problemi di prestazioni.
Eccezioni di violazione di accesso e dump di memoria associati nel log degli errori di SQL Server.
Quando si esegue
sp_createstats
è possibile che venga visualizzato il messaggio di errore seguente:There is insufficient system memory in resource pool 'default' to run this query
Soluzione alternativa
Per attenuare questi problemi, provare o entrambi i due metodi seguenti:
Disabilitare il modello di memoria di grandi pagine rimuovendo il flag di traccia 834 (
-T834
) dai parametri di avvio di SQL Server nell'istanza di SQL Server. Al termine di questo passaggio, SQL Server smette di usare unlarge page
modello di memoria e ripristina unconventional
modello di memoria olock pages
.Se non si usano indici columnstore in SQL Server e si verificano i sintomi descritti, è possibile disabilitare la modalità batch su rowstore a livello di database usando
ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_ON_ROWSTORE = OFF
. Per altre informazioni, vedere ALTER DATABASE SCOPED CONFIGURATION.