Interoperabilitätsprobleme zwischen Batchmodusverarbeitung und großem Seitenspeichermodell
Dieser Artikel hilft Ihnen, die Leistungs- und Stabilitätsprobleme zu beheben, die sich aus der Verwendung der Batchmodusverarbeitung im Spaltenspeicher und Rowstore mit großem Seitenspeichermodell in SQL Server ergeben.
Originalproduktversion: SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, SQL Server 2019, SQL Server 2022
Ursprüngliche KB-Nummer: 3210239
Problembeschreibung
In einer Instanz von SQL Server verwenden Sie ablaufverfolgungskennzeichnung 834 oder Ablaufverfolgungskennzeichnung 876 als Startflagge. Möglicherweise haben Sie diesen Vorgang ausgeführt, um große Seitenzuweisungen durch den SQL Server-Speicher-Manager zu aktivieren, um die Leistung der 64-Bit-Instanz zu verbessern.
Sie verwenden die Columnstore-Indizes oder die Batchmodusverarbeitung im Rowstore.
In diesem Szenario treten mindestens eine der folgenden Probleme auf:
Ein nicht zurückgegebener Scheduler-Fehler und zugeordnete Speicherabbilder im SQL Server-Fehlerprotokoll.
Abfragen, die die Batchmodusverarbeitung verwenden, können zu schwerwiegenden Leistungsproblemen führen.
Zugriffsverletzungsausnahmen und zugeordnete Speicherabbilder im SQL Server-Fehlerprotokoll.
Möglicherweise wird beim Ausführen
sp_createstats
die folgende Fehlermeldung angezeigt:There is insufficient system memory in resource pool 'default' to run this query
Problemumgehung
Um diese Probleme zu beheben, probieren Sie entweder oder beide der folgenden beiden Methoden aus:
Deaktivieren Sie das Speichermodell für große Seiten, indem Sie das Ablaufverfolgungskennzeichnung 834 (
-T834
) aus SQL Server-Startparametern in der SQL Server-Instanz entfernen. Wenn Sie diesen Schritt ausführen, beendet SQL Server die Verwendung eineslarge page
Speichermodells und wird auf einconventional
Speichermodell oderlock pages
Speichermodell zurückgesetzt.Wenn Sie in Sql Server keine Columnstore-Indizes verwenden und die beschriebenen Symptome auftreten, können Sie den Batchmodus im Rowstore auf Datenbankebene mithilfe von
ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_ON_ROWSTORE = OFF
. Weitere Informationen finden Sie unter ALTER DATABASE SCOPED CONFIGURATION.