Sintomi
Per impostazione predefinita, i punti di controllo indiretti sono attivati per il database tempdb in Microsoft SQL Server 2016 e 2017. In condizioni di carico di lavoro elevato può verificarsi un errore "Utilità di pianificazione non cedere" e il sys.dm_os_spinlock_stats DMV mostra conflitti di spinlock elevati per il tipo di spinlock DP_LIST elevato.
Risoluzione
Questa correzione è inclusa negli aggiornamenti e service pack seguenti:
-
Aggiornamento cumulativo 5 per SQL Server 2016 Service Pack 1
-
Aggiornamento cumulativo 8 per SQL Server 2016
Informazioni sul Service Pack per SQL Server 2016
Informazioni SQL Server build
Ogni nuova build per SQL Server contiene tutti gli aggiornamenti rapidi e gli aggiornamenti della sicurezza della build precedente. È consigliabile installare gli aggiornamenti cumulativi più recenti per SQL Server:
I Service Pack sono cumulativi. Ogni nuovo Service Pack contiene tutte le correzioni presenti nei Service Pack precedenti, insieme a tutte le nuove correzioni. È consigliabile applicare il Service Pack più recente e l'aggiornamento cumulativo più recente per tale Service Pack. Non è necessario installare un Service Pack precedente prima di installare il Service Pack più recente. Usare la tabella 1 nell'articolo seguente per trovare altre informazioni sull'ultimo Service Pack e sull'ultimo aggiornamento cumulativo.
Soluzione alternativa
Per risolvere il problema, disattivare i verificatori indiretti del database tempdb usando una delle istruzioni DDL (Data Definition Language) seguenti.
A questo scopo, eseguire le operazioni seguenti:
-
Nel database modeldb, che cambia anche il valore predefinito per i nuovi database, eseguire l'istruzione seguente:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Oppure direttamente nel database tempdb ogni volta che l'istanza viene avviata usando l'agente di SQL Server usando l'istruzione seguente:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
In alternativa, eseguire periodicamente controlli di verifica manuali sul database tempdb usando l'istruzione seguente:
use tempdb#x1
go
Inoltre, TF 3468 può essere usato per disabilitare il check-in indiretto sul database tempdb.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia usata da Microsoft per descrivere gli aggiornamenti software. Per ulteriori informazioni, vedere gli articoli indicati di seguito: