Los Id. De objeto de bloqueo de servidor Sql son demasiado grandes

votos
6

Estoy tratando de rastrear un punto muerto que está ocurriendo en nuestra base de datos SQL 2005 (64 bits). Actualmente no tenemos habilitado el aislamiento de instantáneas.

Encendí tf-1204 y recibí el resultado a continuación.

A partir de este resultado, puedo determinar que el Nodo 1 es un procedimiento almacenado que selecciona datos y solo modifica los valores en las tablas #temp.

El nodo 2 es otro procedimiento almacenado que realiza una actualización simple basada en la clave primaria en una sola fila de datos.

Lo que no puedo determinar es el recurso real que estaba en disputa aquí. Las claves de 10: 72057594060734464 y 10: 72057594038910976 me permiten determinar la base de datos, pero estos identificadores de objetos no se pueden resolver con object_name. De hecho, deberían ser valores int, por lo que no estoy seguro de dónde provienen estos grandes números.

Al investigar el problema, pude obtener valores similares del Activity Monitor para Object ID también.

¿Cómo resuelvo estos identificadores de objeto?

Aquí está la salida del deadlock tf-1204:

2008-12-05 07: 48: 28.19 spid4s ----------------------------------
2008-12-05 07: 48: 28.19 spid4s Inicio de búsqueda de interbloqueo 634
2008-12-05 07: 48: 28.19 Propietario del recurso de destino spid4s:
2008-12-05 07: 48: 28.19 spid4s ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980
2008-12-05 07: 48: 28.19 spid4s 0: Insertar nuevo nodo: Nodo: 1 ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980
2008-12-05 07: 48: 28.19 spid4s 1: SearchOR Teniendo en cuenta el nuevo bloqueador - tarea: 0000000000EC5198, Worker 00000000C89881C0
2008-12-05 07: 48: 28.19 spid4s 2: Insertar nuevo nodo: Nodo: 2 ResType: LockOwner Stype: 'OR'Xdes: 0x00000000808F1A80 Modo: S SPID: 79 BatchID: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Valor: 0x1063d000
2008-12-05 07: 48: 28.19 spid4s 3: SearchOR Teniendo en cuenta el nuevo bloqueador - tarea: 0000000000C3FC18, Worker 00000000F847C1C0
2008-12-05 07: 48: 28.19 spid4s 4: InsertKnown Cycle encontrado entre el antiguo propietario de la res: [ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980] y nuevo propietario de res [ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980]
2008-12-05 07: 48: 28.19 spid4s 4: resultado de la búsqueda InsertKnown: se encontró un punto muerto (el propietario bloqueado está en una pila)
2008-12-05 07: 48: 28.19 spid4s 3: resultado de la búsqueda de SearchOR: se encontró un punto muerto (ciclo en este nivel o antes)
2008-12-05 07: 48: 28.19 spid4s 1: resultado de la búsqueda de SearchOR: se encontró un punto muerto (ciclo en este nivel o antes)
2008-12-05 07: 48: 28.19 spid4s      
2008-12-05 07: 48: 28.19 se encontró el ciclo de interbloqueo spid4s .... verificación de ciclo
2008-12-05 07: 48: 28.19 spid4s 0: Insertar nuevo nodo: Nodo: 1 ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980 Costo: (0/1544)
2008-12-05 07: 48: 28.19 spid4s 1: SearchOR Teniendo en cuenta el nuevo bloqueador - tarea: 0000000000EC5198, Worker 00000000C89881C0
2008-12-05 07: 48: 28.19 spid4s 2: Insertar nuevo nodo: Nodo: 2 ResType: LockOwner Stype: 'OR'Xdes: 0x00000000808F1A80 Modo: S SPID: 79 BatchID: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Valor: 0x1063d000 Costo: (0/0)
2008-12-05 07: 48: 28.19 spid4s 3: SearchOR Teniendo en cuenta el nuevo bloqueador - tarea: 0000000000C3FC18, Worker 00000000F847C1C0
2008-12-05 07: 48: 28.19 spid4s 4: InsertKnown Cycle encontrado entre el antiguo propietario de la res: [ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980 Coste: (0/1544)] y nuevo propietario de res [ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980 Costo :( 0/1544)]
2008-12-05 07: 48: 28.19 spid4s 4: resultado de la búsqueda InsertKnown: se encontró un punto muerto (el propietario bloqueado está en una pila)
2008-12-05 07: 48: 28.19 spid4s 3: resultado de la búsqueda de SearchOR: se encontró un punto muerto (ciclo en este nivel o antes)
2008-12-05 07: 48: 28.19 spid4s 1: resultado de la búsqueda de SearchOR: se encontró un punto muerto (ciclo en este nivel o antes)
2008-12-05 07: 48: 28.19 spid4s Deadlock encontrado ... Imprimir información de interbloqueo
2008-12-05 07: 48: 28.19 Spid4s Gráfico de espera
2008-12-05 07: 48: 28.19 spid4s      
2008-12-05 07: 48: 28.19 nodo spid4s: 1

2008-12-05 07: 48: 28.19 spid4s CLAVE: 10: 72057594060734464 (c80089667602) CleanCnt: 3 Modo: S Flags: 0x0
2008-12-05 07: 48: 28.19 spid4s Grant List 1:
2008-12-05 07: 48: 28.19 spid4s Propietario: 0x000000011063CDC0 Modo: S Flg: 0x0 Ref: 1 Vida: 00000000 SPID: 79 ECID: 0 XactLockInfo: 0x00000000808F1AB8
2008-12-05 07: 48: 28.19 spid4s SPID: 79 ECID: 0 Tipo de extracto: INSERT IGNORE Número de línea: 220
2008-12-05 07: 48: 28.19 spid4s Entrada Buf: RPC Evento: Proc [Id. De base de datos = 10 Id de objeto = 1751794144]
2008-12-05 07: 48: 28.19 spid4s Solicitado por: 
2008-12-05 07: 48: 28.19 spid4s ResType: LockOwner Stype: 'OR'Xdes: 0x00000000813B8700 Modo: X SPID: 77 BatchID: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Valor: 0x1043f980 Costo: (0/1544)
2008-12-05 07: 48: 28.19 spid4s      
2008-12-05 07: 48: 28.19 nodo spid4s: 2

2008-12-05 07: 48: 28.19 spid4s KEY: 10: 72057594038910976 (0c0092f62b82) CleanCnt: 2 Modo: X Flags: 0x0
2008-12-05 07: 48: 28.19 spid4s Grant List 0:
2008-12-05 07: 48: 28.19 spid4s Propietario: 0x000000011043F300 Modo: X Flg: 0x0 Ref: 0 Vida útil: 02000000 SPID: 77 ECID: 0 XactLockInfo: 0x00000000813B8738
2008-12-05 07: 48: 28.19 spid4s SPID: 77 ECID: 0 Tipo de extracto: ACTUALIZACIÓN Nº de línea: 23
2008-12-05 07: 48: 28.19 spid4s Entrada Buf: RPC Evento: Proc [Id. De la base de datos = 10 Id del objeto = 1791462302]
2008-12-05 07: 48: 28.19 spid4s Solicitado por: 
2008-12-05 07: 48: 28.19 spid4s ResType: LockOwner Stype: 'OR'Xdes: 0x00000000808F1A80 Modo: S SPID: 79 BatchID: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Valor: 0x1063d000 Costo: (0/0)
2008-12-05 07: 48: 28.19 spid4s      
2008-12-05 07: 48: 28.19 Propietario de recurso de víctima de spid4s:
2008-12-05 07: 48: 28.19 spid4s ResType: LockOwner Stype: 'OR'Xdes: 0x00000000808F1A80 Modo: S SPID: 79 BatchID: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Valor: 0x1063d000 Costo: (0/0)
2008-12-05 07: 48: 28.19 spid4s Fin de búsqueda de interbloqueo 634 ... se encontró un interbloqueo.
2008-12-05 07: 48: 28.19 spid4s ----------------------------------
Publicado el 09/12/2008 a las 21:02
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
10

Estos ID se refieren en realidad a hobts ​​(Heap Or Binary Tree), que se encuentran en sys.partitions. Pruebe la siguiente consulta dentro de la base de datos 10, y encontrará qué objeto y qué índice se ve afectado.

SELECT hobt_id, object_name(p.[object_id]), index_id 
FROM sys.partitions p 
WHERE hobt_id = 72057594060734464
Respondida el 09/12/2008 a las 23:28
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more