Mal rendimiento al ejecutar INSERT.. Operaciones SELECT en SQL Server 2016

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3180087
Síntomas
En 2016 de Microsoft SQL Server, puede experimentar rendimiento reducido en las condiciones siguientes:
  • Cuando se ejecuta INSERT simultánea múltiples... SELECCIONE las operaciones en tablas temporales.
  • Cuando realiza una consulta sys.dm_os_waiting_tasks. En esta situación, espera a la columna resource_description se muestra en las páginas página libre espacio (PFS) para varias solicitudes.
Causa
INSERTAR paralelismo para INSERTAR... Las operaciones SELECT se introdujo en SQL Server 2016. Inserta en las tablas temporales locales (sólo aquellos identificado por el prefijo y tablas temporales globales no identificadas por ## prefijos) arenow habilitada automáticamente para el paralelismo sin tener que designar la sugerencia TABLOCK que requieren de tablas no son temporales.

Aunque INSERTAR paralelismo normalmente mejora el rendimiento de consulta, si hay un número significativo de temporales simultáneas de la tabla INSERT... Las operaciones SELECT, contención puede ser significativa contra las páginas PFS. En algunos casos, esto puede causar una disminución general del rendimiento.
Solución
El problema se corrigió primero en Service Pack 1 de SQL Server de 2016. Después de aplicar el Service Pack 1 de SQL Server de 2016, inserta paralelo enINSERTAR.. SELECCIONE a las tablas temporales locales está deshabilitado de forma predeterminada, lo que reduce la contención en la página PFS y mejora el rendimiento general de la carga de trabajo simultáneo. Si se desea paralelo inserciones en las tablas temporales locales, usuarios deben utilizar la sugerencia TABLOCK al insertar en la tabla temporal local.

Si ha activado el indicador de traza 9495 mencionado en la sección de solución, es aconsejable deshabilitar y quitar el indicador de traza después de aplicar el Service Pack 1 de SQL Server de 2016 indicador de traza 9495 deshabilita paralelo insertar independientemente la sugerencia TABLOCK.

Información de Cumulativeupdate

Thisissuewas fijada en la siguiente actualización acumulativa para SQL Server 2016:Acerca de las actualizaciones acumulativas de SQL Server
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de la seguridad que se incluyeron en la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:

Actualización acumulativa más reciente para SQL Server 2016


Solución
Para evitar este problema, utilice uno o varios de los métodos siguientes:
  • Habilitar el indicador de traza 9495 a deshabilitar el paralelismo durante la inserción para INSERTAR... Operaciones SELECT. Este indicador de traza deshabilita paralelismo sólo por la porción de INSERCIÓN del fragmento de INSERCIÓN... Operación de SELECCIÓN y se aplica a tablas temporales y el usuario. Para habilitar este indicador de traza, bien utilizar como parámetro de inicio (-T9495) o utilizar DBCC TRACEON(9495,-1) de una nueva sesión. Recomendamos que utilice el parámetro de inicio para las implementaciones de producción para evitar tener que ejecutar el indicador de DBCC TRACEON cada vez que se inicia el servidor.

    Si ha instalado SQL Server 2016 acumulativa Update 1 (CU1), también puede utilizar este indicador de traza de las siguientes maneras:
    • En el nivel de sesión, mediante DBCC TRACEON(9495)
    • En un nivel de instrucción, mediante la OPCIÓN QUERYTRACEON(9495)
  • Crear un índice en la tabla temporal. El problema que se describe en la sección "Síntomas" se produce sólo con una tabla temporal montones.
  • Utilice la sugerencia de consulta MAXDOP 1 para la INSERCIÓN de la problemática... Operaciones SELECT.

Referencias

Para obtener más información acerca de cómo configurar indicadores de traza, consulte la sección "Comentarios" en el tema de libros en pantalla de SQL Server siguiente:


Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 3180087 - Última revisión: 11/23/2016 22:09:00 - Revisión: 2.0

Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Standard, Microsoft SQL Server 2016 Enterprise

  • kbmt KB3180087 KbMtes
Comentarios