Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La clase de eventos Lock:Escalation indica que un bloqueo más granular se ha convertido en un bloqueo menos granular; por ejemplo, un bloqueo de fila que se convierte en un bloqueo de objeto. La clase del evento de escalación es Event ID 60.
Columnas de datos de la clase de eventos Lock:Escalation
| Nombre de columna de datos | Tipo de dato | Descripción | Identificador de columna | Filtrable |
|---|---|---|---|---|
| ApplicationName | nvarchar |
Nombre de la aplicación cliente que creó la conexión a una instancia de SQL Server. Esta columna se rellena con los valores que pasa la aplicación, en lugar de con el nombre que se muestra para el programa. | 10 | Sí |
| ClientProcessID | int |
Identificador que el equipo host asigna al proceso en el que se ejecuta la aplicación cliente. Esta columna de datos se rellena si el cliente proporciona el identificador de proceso del cliente. | 9 | Sí |
| DatabaseID | int |
ID de la base de datos en la que se adquirió el bloqueo. SQL Server Profiler muestra el nombre de la base de datos si se captura la columna de datos ServerName en el seguimiento y el servidor está disponible. Determina el valor de una base de datos mediante la función DB_ID. | 3 | Sí |
| DatabaseName | nvarchar |
Nombre de la base de datos en la que se produjo la escalación. | 35 | Sí |
| EventClass | int |
Tipo de evento = 60. | 27 | No |
| EventSubClass | int |
Causa de la extensión del bloqueo: 0 - LOCK_THRESHOLD indica que la instrucción superó el umbral de bloqueo. 1 - MEMORY_THRESHOLD indica que la instrucción superó el umbral de memoria. |
21 | Sí |
| EventSequence | int |
Secuencia de un evento determinado de la solicitud. | 51 | No |
| GroupID | int |
Id. del grupo de carga de trabajo donde se activa el evento de Seguimiento de SQL. | 66 | Sí |
| Nombre de host | nvarchar |
Nombre del equipo en el que se está ejecutando el cliente. Esta columna de datos se rellena si el cliente proporciona el nombre del host. Para averiguar el nombre de host, use la función HOST_NAME . | 8 | Sí |
| IntegerData | int |
Recuento de bloqueos de HoBT. Número de bloqueos para el HoBT en el momento de la extensión de bloqueo. | 25 | Sí |
| IntegerData2 | int |
Recuento de bloqueos escalados. Número total de cerraduras que fueron convertidas. Estas estructuras de bloqueo se desasignan porque ya están cubiertas por el bloqueo escalado. | 55 | Sí |
| IsSystem | int |
Indica si el evento ha ocurrido en un proceso del sistema o en un proceso de usuario. 1 = sistema, 0 = usuario. | 60 | Sí |
| LineNumber | int |
Número de línea de la declaración Transact-SQL. | 5 | Sí |
| LoginName | nvarchar |
Nombre del inicio de sesión del usuario (inicio de sesión de seguridad de SQL Server o las credenciales de inicio de sesión de Microsoft Windows en forma de DOMINIO\nombredeusuario). | 11 | Sí |
| LoginSid | image |
SID (número de identificación de seguridad) del usuario que ha iniciado la sesión. Puede encontrar esta información en la vista de catálogo sys.server_principals . Cada SID es único para cada inicio de sesión en el servidor. | 41 | Sí |
| Modo | int |
Modo de bloqueo resultante después del escalamiento: 0=NULL: compatible con todos los demás modos de bloqueo (LCK_M_NL) 1=Bloqueo de estabilidad del esquema (LCK_M_SCH_S) 2=Bloqueo de modificación del esquema (LCK_M_SCH_M) 3=Bloqueo compartido (LCK_M_S) 4=Bloqueo de actualización (LCK_M_U) 5=Bloqueo exclusivo (LCK_M_X) 6=Bloqueo compartido de intención (LCK_M_IS) 7=Bloqueo de actualización de intención (LCK_M_IU) 8=Bloqueo exclusivo de intención (LCK_M_IX) 9=Compartido con el propósito de actualizar (LCK_M_SIU) 10=Compartido con intención exclusiva (LCK_M_SIX) 11=Actualización con intención exclusiva (LCK_M_UIX) 12=Bloqueo de actualización en masa (LCK_M_BU) 13=Rango de claves compartido/compartido (LCK_M_RS_S) 14=Rango de claves compartido/actualización (LCK_M_RS_U) 15=Inserción de intervalo de claves NULL (LCK_M_RI_NL) 16=Inserción de intervalo de claves compartido (LCK_M_RI_S) 17=Actualización de inserción de intervalo de claves (LCK_M_RI_U) 18=Inserción exclusiva de rango de clave (LCK_M_RI_X) 19=Intervalo de claves exclusivo compartido (LCK_M_RX_S) 20=Actualización exclusiva de rango de claves (LCK_M_RX_U) 21=Exclusivo exclusivo del rango de claves (LCK_M_RX_X) |
32 | Sí |
| NTDomainName | nvarchar |
Dominio de Windows al que pertenece el usuario. | 7 | Sí |
| NTUserName | nvarchar |
Nombre del usuario de Windows. | 6 | Sí |
| ObjectID | int |
Identificador asignado por el sistema de la tabla para la que se desencadenó la escalada de bloqueo. | 22 | Sí |
| ObjectID2 | bigint |
Identificador del objeto o entidad relacionado. (ID de HoBT para el que se activó la extensión de bloqueo). | 56 | Sí |
| de desplazamiento | int |
Desplazamiento inicial de declaración Transact-SQL. | 61 | Sí |
| OwnerID | int |
1=TRANSACCIÓN 2=CURSOR 3=SESIÓN 4=ESPACIO_DE_TRABAJO_DE_TRANSACCIONES_COMPARTIDAS 5=ESPACIO_DE_TRABAJO_EXCLUSIVO_DE_TRANSACCIONES 6=WAITFOR_QUERY |
58 | Sí |
| SolicitudID | int |
Identificador de la solicitud que contiene la instrucción. | 49 | Sí |
| ServerName | nvarchar |
Nombre de la instancia de SQL Server que se realiza el seguimiento. | 26 | No |
| SessionLoginName | nvarchar |
Nombre de inicio de sesión del usuario que originó la sesión. Por ejemplo, si se conecta a SQL Server mediante Login1 y ejecuta una instrucción como Login2, SessionLoginName muestra Login1 y LoginName muestra Login2. En esta columna se muestran los inicios de sesión de SQL Server y Windows. | 64 | Sí |
| SPID | int |
Identificador de la sesión en la que se produjo el evento. | 12 | Sí |
| StartTime | datetime |
Hora a la que se inició el evento, si está disponible. | 14 | Sí |
| TextData | ntext |
Texto de la instrucción Transact-SQL que provocó la extensión de bloqueo. | 1 | Sí |
| TransactionID | bigint |
Id. de la transacción asignado por el sistema. | 4 | Sí |
| Tipo | int |
Granularidad de la escalación de bloqueo 1=NULL_RESOURCE 2=BASE DE DATOS 3=ARCHIVO 5=OBJECT (nivel de tabla) 6=PÁGINA 7=KEY 8=EXTENSIÓN 9=RID 10=APLICACIÓN 11=METADATOS 12=HOBT 13=UNIDAD_DE_ASIGNACIÓN |
57 | Sí |
Ejemplos
En el ejemplo siguiente se usa el sp_trace_create procedimiento para crear un seguimiento, se usa sp_trace_setevent para agregar columnas de escalado de bloqueos al seguimiento y, a continuación, se usa sp_trace_setstatus para iniciar el seguimiento. En instrucciones como EXEC sp_trace_setevent @TraceID, 60, 22, 1, el número 60 indica la clase de eventos de escalación, 22 indica la columna ObjectID y 1 establece el evento de seguimiento en ON.
DECLARE @RC int, @TraceID int;
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\TraceResults';
-- Set the events and data columns you need to capture.
EXEC sp_trace_setevent @TraceID, 60, 1, 1; -- 1 = TextData
EXEC sp_trace_setevent @TraceID, 60, 12, 1; -- 12 = SPID
EXEC sp_trace_setevent @TraceID, 60, 21, 1; -- 21 = EventSubClass
EXEC sp_trace_setevent @TraceID, 60, 22, 1; -- 22 = ObjectID
EXEC sp_trace_setevent @TraceID, 60, 25, 1; -- 25 = IntegerData
EXEC sp_trace_setevent @TraceID, 60, 55, 1; -- 25 = IntegerData2
EXEC sp_trace_setevent @TraceID, 60, 57, 1; -- 57 = Type
-- Set any filter by using sp_trace_setfilter.
-- Start the trace.
EXEC sp_trace_setstatus @TraceID, 1;
GO
Ahora que se está ejecutando el seguimiento, ejecute las instrucciones que desea realizar. Cuando terminen, ejecute el siguiente código para detener y luego cerrar la traza. En este ejemplo, se utiliza la función fn_trace_getinfo para obtener el traceid que se utilizará en las instrucciones sp_trace_setstatus.
-- After the trace is complete.
DECLARE @TraceID int;
-- Find the traceid of the current trace.
SELECT @TraceID = traceid
FROM ::fn_trace_getinfo(default)
WHERE value = N'C:\TraceResults.trc';
-- First stop the trace.
EXEC sp_trace_setstatus @TraceID, 0;
-- Close and then delete its definition from SQL Server.
EXEC sp_trace_setstatus @TraceID, 2;
GO
Véase también
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)