Síntomas
De forma predeterminada, los puntos de control indirectos están activados para la base de datos tempdb en Microsoft SQL Server 2016 y 2017. En condiciones de carga de trabajo elevada, puede producirse un error "Programador no rendto" y la sys.dm_os_spinlock_stats DMV muestra contención de bloqueo elevado para el tipo de bloqueo de número DP_LIST.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Solución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Acerca de las actualizaciones acumulativas para SQL Server:
Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:
Solución alternativa
Para solucionar este problema, desactive los puntos de control indirectos en la base de datos tempdb mediante una de las siguientes instrucciones de lenguaje de definición de datos (DDL).
Esto se debe hacer de la siguiente manera:
-
En la base de datos modeldb (esto también cambia el valor predeterminado para las nuevas bases de datos), ejecute la siguiente instrucción:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
O bien, directamente en la base de datos tempdb cada vez que se inicia la instancia mediante la Agente SQL Server mediante la siguiente instrucción:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
O bien, emita periódicamente puntos de control manuales en la base de datos tempdb mediante la siguiente instrucción:
use tempdb
go checkpoint
go
Además, TF 3468 se puede usar para deshabilitar el punto de control indirecto en tempdb.
Referencias
Obtén información sobre la terminología que usa Microsoft para describir las actualizaciones de software. Consulte los siguientes artículos para obtener más información: