Freigeben über


Serverkonfiguration: Timeout für die Wiederholung der ADR-Bereinigung (min)

Gilt für: SQL Server 2019 (15.x) und höhere Versionen von Azure SQL Managed Instance

Ab SQL Server 2019 (15.x) und in azure SQL Managed Instance wird diese Konfigurationseinstellung für die beschleunigte Datenbankwiederherstellung (ADR) verwendet. Die Bereinigung ist ein asynchroner Prozess, der periodisch reaktiviert wird und nicht benötigte Zeilenversionen bereinigt.

Gelegentlich können bei der Bereinigung Probleme beim Abrufen von IX-Sperren auf Objekt- oder Partitionsebene aufgrund von Konflikten mit der Benutzerworkload auftreten. Die Bereinigung verfolgt solche Seiten in einer separaten Liste. ADR cleaner retry timeout (min) steuert, wie viel Zeit die Bereinigung ausschließlich für die Wiederholung der IX Objektsperrerfassung und die Bereinigung von Seiten aufwendet, bevor der Aufräumvorgang abgebrochen wird. Der Abschluss der Bereinigung mit hundertprozentigem Erfolg ist entscheidend, um den Zuwachs abgebrochener Transaktionen in der Liste der abgebrochenen Transaktionen unter Kontrolle zu behalten. Wenn die Seiten in der separaten Liste nicht im vorgegebenen Timeout bereinigt werden können, wird der aktuelle Aufräumvorgang abgebrochen, und die Bereinigung wird während des nächsten Aufräumens versucht.

Version Standardwert
SQL Server 2019 (15.x) 120
SQL Server 2022 (16.x) und höhere Versionen 15

Bemerkungen

Die Bereinigung ist in SQL Server 2019 (15.x) ein Single-Thread-Prozess. In SQL Server 2022 (16.x) ist die Bereinigung standardmäßig ein Single-Thread-Prozess, sie kann jedoch durch Konfigurieren der ADR Cleaner Thread Count-Serverkonfiguration zum Prozess mit mehreren Threads gemacht werden.

Wenn die Bereinigung ein Single-Thread-Prozess ist, kann sie jeweils nur an einer Datenbank arbeiten. Wenn die Instanz mehrere Datenbanken mit aktiviertem ADR aufweist, erhöhen Sie das Timeout nicht auf einen großen Wert. Dies könnte die Bereinigung für eine Datenbank verzögern, während die Wiederholungsversuche für eine andere Datenbank ausgeführt werden.

Bekanntes Problem

Für SQL Server 2019 (15.x) CU 12 und frühere Versionen ist diese Wert möglicherweise auf 0 festgelegt. Es wird empfohlen, den Wert anhand des Beispiels in diesem Artikel manuell auf 120 zurückzusetzen (die vorgesehene Standardeinstellung).

Beispiele

Das folgende Beispiel legt das Timeout für die Wiederholung der Bereinigung auf den Standardwert fest.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 120;
RECONFIGURE;
GO

Beispiele

Das folgende Beispiel legt das Timeout für die Wiederholung der Bereinigung auf den Standardwert fest.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 15;
RECONFIGURE;
GO