REVISIÓN: Un rendimiento lento cuando un desencadenador AFTER se ejecuta en una tabla con particiones en SQL Server 2008 R2 o en el año 2012 de SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 2606883 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Tenga en cuenta los siguientes escenarios:
  • Crear particiones para una tabla de Microsoft SQL Server 2008 R2 o en Microsoft SQL Server 2012.
  • Se crea un DESPUÉS DE desencadenador de cualquier INSERTAR o ELIMINAR operación que se realiza en la tabla.
  • Realizar una INSERTAR o ELIMINAR operación en la tabla.

En este escenario, podría producirse un rendimiento lento. Además, muchas lecturas lógicas pueden producirse si ejecuta el generador de perfiles de SQL.

Causa

Este problema se produce por las razones siguientes:
  • El motor de almacenamiento de información internamente mantiene una cadena de versión único para cada instrucción.
  • Busca en la ejecución de consultas para las particiones de la cadena de versión completa para buscar las filas que se insertan para una de las particiones.

Solución

Para resolver este problema, aplique la revisión siguiente y, a continuación, utilice el - indicador de traza T2470

Información sobre la actualización acumulativa

SQL Server de 2012 La solución a este problema se lanzó en primer lugar en la actualización acumulativa 1 para SQL Server 2012. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2679368 Paquete de actualización acumulativa 1 para el año 2012 de SQL Server
Nota Debido a que las compilaciones son acumulativas, cada nueva versión de revisión contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluye con el año 2012 de SQL Server anterior. Microsoft recomienda que considere la posibilidad de aplicar la versión más reciente de revisión que contenga esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2692828 Se basa el 2012 de SQL Server que se publicaron después del lanzamiento de SQL Server 2012
Debe aplicar una revisión de 2012 de SQL Server a una instalación de SQL Server 2012.

SQL Server 2008 R2 Service Pack 1

Información sobre la actualización acumulativa

La solución a este problema se lanzó en primer lugar en la actualización acumulativa 3 para SQL Server 2008 R2 Service Pack 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2591748 Paquete de actualización acumulativa 3 para SQL Server 2008 R2 Service Pack 1
Nota Debido a que las compilaciones son acumulativas, cada nueva versión de revisión contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión más reciente de revisión que contenga esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2567616 SQL Server 2008 R2 generaciones que se publicaron después del lanzamiento de SQL Server 2008 R2 Service Pack 1

Información de la revisión

Hay una revisión compatible de Microsoft. Sin embargo, esta revisión se diseñó para corregir el problema descrito en este artículo. Aplicar esta revisión sólo a los sistemas que experimenten este problema específico.

Si la revisión está disponible para descargar, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si no aparece en esta sección, envíe una solicitud al servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota Si se producen problemas adicionales o cualquier solución de problemas es necesario, es posible que deba crear una solicitud de servicio independiente. Los costos habituales de soporte se aplicarán a las cuestiones y problemas que no reúnan los requisitos para esta revisión en cuestión. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft y soporte técnico o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:
http://support.Microsoft.com/contactus/?ws=support
Nota El formulario de "Descarga de revisión disponible" muestra los idiomas para que la revisión está disponible. Si no ve su idioma, es porque una revisión no está disponible para ese idioma.

Requisitos previos

Para aplicar esta revisión, debe tener Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) instalado.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar esta revisión.

Información de reemplazo de hotfix

Esta revisión no sustituye a una revisión lanzada anteriormente.

Información de archivo

La versión global tiene los atributos de archivo (u otros posteriores) que se enumeran en la tabla siguiente. Las fechas y horas de estos archivos se muestran en hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para ver la diferencia entre la hora UTC y la hora local, utilice el Zona horaria ficha en la Fecha y hora elemento en el Panel de Control.

Para todas las versiones 86 de SQL Server 2008 R2 SP1 x
Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaTiempoPlataforma
Sqlservr.exe2009.100.2776.043,053,92015-Sep-201101: 47x 86

Para todas versiones de 64 de xSQL Server 2008 R2 SP1

Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaTiempoPlataforma
Sqlservr.exe2009.100.2776.062,176,60815-Sep-201100: 57x 64

Para todos los compatibles con versiones debasados en IA-64 deSQL Server 2008 R2 SP1

Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaTiempoPlataforma
Sqlservr.exe2009.100.2776.0122,105,69615-Sep-201123: 00IA-64


Solución

Para evitar este problema, cambie el desencadenador AFTER a un desencadenador INSTEAD OF INSERT o a un desencadenador INSTEAD OF DELETE .

Por ejemplo, ejecute las instrucciones siguientes para crear un desencadenador AFTER :
CREATE TRIGGER TR_Test ON Test FOR INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED END GO
En este escenario, cambie el desencadenador AFTER a INSTEAD OF INSERT mediante las instrucciones siguientes:
CREATE TRIGGER TR_Test ON Test INSTEAD OF INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED INSERT INTO Test (Groupe) SELECT @groupe FROM INSERTED END

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se refiere a:".

Propiedades

Id. de artículo: 2606883 - Última revisión: lunes, 16 de abril de 2012 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2012 Developer
Palabras clave: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB2606883 KbMtes
Traducción automática
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): 2606883

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com