REVISIÓN: Pueden producirse interbloqueos cuando se activan varias suscripciones de notificación de consulta simultáneas en los mismos objetos en SQL Server 2005 o en SQL Server 2008

Seleccione idioma Seleccione idioma
Id. de artículo: 975090 - Ver los productos a los que se aplica este artículo
Microsoft distribuye correcciones de Microsoft SQL Server 2005 como un archivo que se puede descargar. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2005.Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo que se puede descargar. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008.
Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente:
  • En Microsoft SQL Server 2005 o Microsoft SQL Server 2008, configurar varias suscripciones de notificación de consulta en algunas tablas.
  • Actualizar estas tablas.
  • Las solicitudes para las suscripciones de notificación de consulta son activadas simultáneamente.
En este escenario, pueden producirse interbloqueos en las tablas del sistema de notificación de consulta (por ejemplo, una tabla de sistema con un nombre similar a sys.query_notification_xxxxxx). Además, se graba en el siguiente gráfico de interbloqueo en el archivo de registro de errores de SQL Server:
camarero id = modo process7f8dc48 = requestType U = espera,
lista de camarero
identificador de propietario = modo process873ce38 = U,
lista de propietario,
keylock hobtid = 72057594049462272 dbid = 5 objectname = <database>. indexname sys.query_notification_626101271 = cidx id = lock178dd6c0
modo = associatedObjectId U = 72057594049462272,
camarero id = modo process873ce38 = requestType U = espera,
lista de camarero
identificador de propietario = modo process7f8dc48 = U,
lista de propietario,
keylock hobtid = 72057594049462272 dbid = 5 objectname = <database>. indexname sys.query_notification_626101271 = cidx id = lock176848c0
modo = associatedObjectId U = 72057594049462272,
lista de recursos,
<query>,
inputbuf,
<query>,
marco procname = "ad hoc" línea = 1 sqlhandle = 0x020000009f5c4302918e8370f6d9bd71045a53f75b8056b3,
executionStack,
id. de proceso = process873ce38 taskpriority = 0 logused = 0 waitresource = KEY: waittime 5:72057594049462272 (0e0086ec58d5) = 4984 ///ownerid = transactionname 574444809 = CQueryScan::BeginNotifXact lasttranstarted = <fecha><hora>XDES = 0x732047f8 lockMode = schedulerid U = kpid 7 = 8068 status = spid suspendido = 133 sbid = 0 ecid = prioridad 0 = 0 transcount = 0 lastbatchstarted = <fecha><hora>lastbatchcompleted = <fecha><hora>clientapp = .NET nombre de host del proveedor de datos SqlClient = <hostname>hostpid = loginname 1824 = <loginname>isolationlevel = lectura confirmada xactid (2) = currentdb 574444808 = 5 lockTimeout = 4294967295 clientoption1 = clientoption2 671088672 = 128056,
<query>,
inputbuf,
<query>,
marco procname = "ad hoc" línea = 1 sqlhandle = 0x020000009f5c4302918e8370f6d9bd71045a53f75b8056b3,
executionStack,
id. de proceso = process7f8dc48 taskpriority = 0 logused = waitresource 0 = KEY: waittime 5:72057594049462272 (0d006843edc7) = ///ownerid 4984 = transactionname 574444769 = CQueryScan::BeginNotifXact lasttranstarted = <fecha><hora>XDES = 0x6adc9528 lockMode = schedulerid U = kpid 5 = 676 status = spid suspendido = sbid 293 = 0 ecid = prioridad 0 = 0 transcount = 0 lastbatchstarted = <fecha><hora>lastbatchcompleted = <fecha><hora>clientapp = .NET nombre de host del proveedor de datos SqlClient = <hostname>110 hostpid = loginname 1272 = <loginname>isolationlevel = lectura confirmada xactid (2) = currentdb 574444768 = 5 lockTimeout = 4294967295 clientoption1 = clientoption2 671088672 = 128056,
lista de procesos
víctima del interbloqueo = process873ce38,
lista de interbloqueo

Causa

De forma predeterminada, SQL Server utiliza el nivel de aislamiento de transacción de READ_COMMITTED. Por tanto, las consultas internas de SQL Server tienen el potencial de ejecutar en los interbloqueos. En el escenario que se describe en la sección "Síntomas", las consultas que provocan el interbloqueo son las consultas internas.

Solución

SQL Server 2005 Service Pack 3

La corrección para este problema se publicó por primera vez en actualización acumulativa 6 para SQL Server 2005 Service Pack 3. 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:
974648Paquete de actualización acumulativa 6 para SQL Server 2005 Service Pack 3
Nota Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2005. Microsoft recomienda que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 lanzadas después del lanzamiento de SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 las revisiones se crean para determinados service Pack de SQL Server. Debe aplicar una revisión de SQL Server 2005 Service Pack 3 a una instalación de SQL Server 2005 Service Pack 3. De forma predeterminada, cualquier revisión suministrada en un service pack de SQL Server se incluye en el siguiente service pack.

La versión de lanzamiento de SQL Server 2008

Importante Debe instalar esta revisión si está ejecutando la versión de lanzamiento de SQL Server 2008.

La corrección para este problema se publicó por primera vez en 8 de actualización acumulativa. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
9759768 De paquete de actualización acumulativa para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909Compilaciones de SQL Server 2008 se publicaron después del lanzamiento de SQL Server 2008

SQL Server 2008 Service Pack 1

Importante Debe instalar esta revisión si está ejecutando SQL Server 2008 Service Pack 1.

La corrección para este problema se publicó por primera vez en 5 de actualización acumulativa para SQL Server 2008 Service Pack 1. 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:
9759775 De paquete de actualización acumulativa para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Microsoft recomienda que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365Compilaciones de SQL Server 2008 se publicaron después del lanzamiento de SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 revisiones se crean para determinados service Pack de SQL Server. Debe aplicar una revisión de Service Pack 1 de SQL Server 2008 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier revisión suministrada en un service pack de SQL Server se incluye en el siguiente service pack.

Después de aplicar esta revisión, se establecerá el nivel de aislamiento a serializable al motor de base de datos tiene acceso a las tablas del sistema.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

Según a causa de este problema, el método típico de optimización y la indización no puede resolver este problema. La revisión se utiliza para modificar temporalmente el nivel de aislamiento a un nivel superior para una parte concreta de esta transacción para asegurarse de que no ejecuten las consultas problemáticas en interbloqueo.

Referencias

Para obtener más información acerca de cómo el modelo de servicio incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información acerca de cómo obtener SQL Server 2005 Service Pack 3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
913089Cómo obtener el service pack más reciente para SQL Server 2005
Para obtener más información acerca de las nuevas características de SQL Server 2005 Service Pack 3 (SP3) y las mejoras de SQL Server 2005 SP3, visite el siguiente sitio Web:
http://go.microsoft.com/fwlink/?LinkId=131442
Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server
Para obtener más información acerca de la terminología relativa a las actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 975090 - Última revisión: lunes, 19 de octubre de 2009 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975090 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): 975090

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