Síntomas
En Microsoft SQL Server 2016 o SQL Server 2017 en Windows, es posible que experimentes una disminución del rendimiento en las siguientes condiciones:
-
Al ejecutar varias operaciones INSERTSELECT simultáneas en tablas temporales.
-
Al consultar sys.dm_os_waiting_tasks. En esta situación, la columna resource_description muestra esperas en páginas de espacio libre (PFS) para múltiples solicitudes.
Causa
Insert paralelismo para operaciones INSERTSELECT se introdujo en SQL Server 2016 o SQL Server 2017 en Windows. Los INSERT en tablas temporales locales (solo las identificadas con el prefijo # y no las tablas temporales globales identificadas con prefijos ##) ahora se habilitan automáticamente para el paralelismo sin tener que designar la sugerencia TABLOCK que requieren las tablas no temporales.
Aunque el paralelismo INSERT normalmente mejora el rendimiento de las consultas, si hay un número significativo de operaciones INSERTSELECT de tabla temporal simultánea, la contención puede ser significativa en las páginas PFS. En algunos casos, esto puede provocar una disminución general del rendimiento.Solución
El problema se corrige por primera vez en SQL Server Service Pack 1 de 2016. Después de aplicar SQL Server 2016 SP1, INSERT paralelos en INSERT.. Select to local temporary tables is disabled by default which reduce contention on PFS page and improves the overall performance for concurrent workload. Si se desea usar INSERT paralelos a tablas temporales locales, los usuarios deben usar la sugerencia TABLOCK mientras insertan en la tabla temporal local. Si ha habilitado la marca de seguimiento 9495 mencionada en la sección de solución alternativa, se recomienda deshabilitar y quitar el indicador de seguimiento después de aplicar SQL Server 2016 SP1 como marca de seguimiento 9495 deshabilita la inserción paralela, independientemente de la sugerencia TABLOCK.
Información sobre la actualización acumulativa
Este problema se ha corregido en la siguiente actualización acumulativa de SQL Server 2016:
Acerca de las actualizaciones acumulativas para SQL Server