Configurazione del server: ADR cleaner retry timeout (min)
Si applica a:SQL Server
A partire da SQL Server 2019 (15.x), questa impostazione di configurazione viene usata per ripristino accelerato del database (ADR). Il pulitore è un processo asincrono che si riattiva periodicamente e pulisce le versioni di riga che non sono necessarie.
In alcuni casi, il sistema di pulizia potrebbe riscontrare problemi durante l'acquisizione di blocchi a livello di oggetto o di partizione IX
a causa di conflitti di blocco con i carichi di lavoro degli utenti durante la scansione. Il pulitore tiene traccia di tali pagine in un elenco separato.
ADR cleaner retry timeout (min)
controlla la quantità di tempo che il pulitore impiega solo per ritentare l'acquisizione del blocco IX
e la pulizia delle pagine prima di interrompere lo sweeping. Il completamento dello sweep con un successo del 100%% è essenziale per contenere l'aumento delle transazioni interrotte nella rispettiva mappa. Se le pagine dell'elenco separato non possono essere pulite nel timeout previsto, lo sweep corrente viene abbandonato e la pulizia viene tentata durante lo sweep successivo.
Versione | Default value |
---|---|
SQL Server 2019 (15.x) | 120 |
SQL Server 2022 (16.x) e versioni successive | 15 |
Osservazioni:
La pulizia è a thread singolo in SQL Server 2019 (15.x). In SQL Server 2022 (16.x), il servizio di pulizia è a thread singolo per impostazione predefinita, ma può essere reso multithread configurando la configurazione del server ADR Cleaner Thread Count
.
Se il pulitore è a thread singolo, può funzionare solo su un database alla volta. Se l'istanza ha più di un database con ADR abilitato, non aumentare il timeout a un valore elevato. In questo modo è possibile ritardare la pulizia in un database durante la ripetizione dei tentativi in un altro database.
Problema noto
Per SQL Server 2019 (15.x) CU 12 e versioni precedenti, questo valore può essere impostato su 0
. È consigliabile reimpostare manualmente il valore su 120
, ovvero l'impostazione predefinita progettata, usando l'esempio in questo articolo.
Esempi
Nell'esempio seguente il timeout dei tentativi di pulizia viene impostato sul valore predefinito.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 120;
RECONFIGURE;
GO
Esempi
Nell'esempio seguente il timeout dei tentativi di pulizia viene impostato sul valore predefinito.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 15;
RECONFIGURE;
GO