Lock:Escalation (clase de evento)
La clase de evento Lock:Escalation indica que un bloqueo específico se ha convertido en un bloqueo general; por ejemplo, un bloqueo de fila se ha convertido en un bloqueo de objeto. La clase de eventos de ampliación tiene Id. de Evento 60.
Columnas de datos de la clase de evento Lock:Escalation
Nombre de la columna de datos |
Tipo de datos |
Descripción |
Id. de columna |
Filtrable |
---|---|---|---|---|
ApplicationName |
nvarchar |
Nombre de la aplicación cliente que ha creado 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 del 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 Id. de proceso del cliente. |
9 |
Sí |
DatabaseID |
int |
Id. de la base de datos en la que se ha adquirido el bloqueo. El 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. El valor para una base de datos se puede determinar mediante la función DB_ID. |
3 |
Sí |
DatabaseName |
nvarchar |
Nombre de la base de datos en la que ha ocurrido la extensión. |
35 |
Sí |
EventClass |
int |
Tipo de evento = 60. |
27 |
No |
EventSubClass |
int |
Causa de la ampliación del bloqueo: 0 - LOCK_THRESHOLD indica que la instrucción superó el umbral del bloqueo. 1 - MEMORY_THRESHOLD indica que la instrucción superó el umbral de memoria. |
21 |
Sí |
EventSequence |
int |
Secuencia de un determinado evento dentro 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í |
HostName |
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 determinar el nombre del host, utilice la función HOST_NAME. |
8 |
Sí |
IntegerData |
int |
Recuento de bloqueo de HoBT. El número de bloqueos para el HoBT en el momento de la ampliación del bloqueo. |
25 |
Sí |
IntegerData2 |
int |
Recuento de la ampliación del bloqueo. El número total de bloqueos que se convirtieron. Se cancelan las asignaciones de estas estructuras de bloqueo porque ya están cubiertas por el bloqueo ampliado. |
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 instrucció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 credenciales de inicio de sesión de Microsoft Windows en formato DOMINIO\nombreDeUsuario). |
11 |
Sí |
LoginSid |
image |
SID (número de identificación de seguridad) del usuario que ha iniciado la sesión. Puede buscar 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í |
Mode |
int |
Modo de bloqueo que resulta después de la ampliación: 0=NULL: Compatible con los demás modos de bloqueo (LCK_M_NL) 1=Bloqueo Estabilidad del esquema (LCK_M_SCH_S) 2=Bloqueo Modificación del esquema (LCK_M_SCH_M) 3=Bloqueo Compartido (LCK_M_S) 4=Bloqueo Actualizar (LCK_M_U) 5=Bloqueo Exclusivo (LCK_M_X) 6=Bloqueo Intención compartida (LCK_M_IS) 7=Bloqueo Actualizar intención (LCK_M_IU) 8=Bloqueo Intención exclusiva (LCK_M_IX) 9=Actualizar intención compartida (LCK_M_SIU) 10=Intención compartida exclusiva (LCK_M_SIX) 11=Actualizar intención exclusiva (LCK_M_UIX) 12=Bloqueo Actualización masiva (LCK_M_BU) 13=Intervalo de claves compartido/compartido (LCK_M_RS_S) 14=Intervalo de claves compartido/actualización (LCK_M_RS_U) 15=Intervalo de claves de inserción NULL (LCK_M_RI_NL) 16=Intervalo de claves de inserción compartido (LCK_M_RI_S) 17=Intervalo de claves de inserción de actualización (LCK_M_RI_U) 18=Intervalo de claves de inserción exclusivo (LCK_M_RI_X) 19=Intervalo de claves exclusivo compartido (LCK_M_RX_S) 20=Intervalo de claves exclusivo de actualización (LCK_M_RX_U) 21=Intervalo de claves exclusivo exclusivo (LCK_M_RX_X) |
32 |
Sí |
NTDomainName |
nvarchar |
Dominio de Windows al que pertenece el usuario. |
7 |
Sí |
NTUserName |
nvarchar |
Nombre de usuario de Windows. |
6 |
Sí |
ObjectID |
int |
Id. asignado por sistema de la tabla para la que se inició la ampliación del bloqueo. |
22 |
Sí |
ObjectID2 |
bigint |
Id. de la entidad u objeto relacionado. (Id. del HoBT para el que se inició la ampliación del bloqueo). |
56 |
Sí |
Offset |
int |
Desplazamiento inicial de la instrucción Transact-SQL. |
61 |
Sí |
OwnerID |
int |
1=TRANSACTION 2=CURSOR 3=SESSION 4=SHARED_TRANSACTION_WORKSPACE 5=EXCLUSIVE_TRANSACTION_WORKSPACE 6=WAITFOR_QUERY |
58 |
Sí |
RequestID |
int |
Id. de la solicitud que contiene la instrucción. |
49 |
Sí |
ServerName |
nvarchar |
Nombre de la instancia de SQL Server de la que se realiza un 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 usando inicioDeSesión1 y ejecuta una instrucción como inicioDeSesión2, SessionLoginName muestra inicioDeSesión1 y LoginName muestra inicioDeSesión2. En esta columna se muestran los inicios de sesión de SQL Server y de Windows. |
64 |
Sí |
SPID |
int |
Id. de la sesión en la que se ha producido 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 produjo la ampliación del bloqueo. |
1 |
Sí |
TransactionID |
bigint |
Id. de la transacción asignado por el sistema. |
4 |
Sí |
Type |
int |
Granularidad de la ampliación del bloqueo: 1=NULL_RESOURCE 2=DATABASE 3=FILE 5=OBJECT (nivel de tabla) 6=PAGE 7=KEY 8=EXTENT 9=RID 10=APPLICATION 11=METADATA 12=HOBT 13=ALLOCATION_UNIT |
57 |
Sí |
Ejemplos
El ejemplo siguiente utiliza el procedimiento sp_trace_create para crear un seguimiento, utiliza sp_trace_setevent para agregar las columnas de ampliación del bloqueo al seguimiento y, a continuación, utiliza sp_trace_setstatus para iniciar dicho seguimiento. En instrucciones como EXEC sp_trace_setevent @TraceID, 60, 22, 1, el número 60 indica la clase de eventos de ampliació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 byusing sp_trace_setfilter.
-- Start the trace.
EXEC sp_trace_setstatus @TraceID, 1
GO
Ahora que el seguimiento se está ejecutando, ejecute las instrucciones que desea supervisar. Cuando finalicen, ejecute el código siguiente para detener y después cerrar el seguimiento. Este ejemplo 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
Vea también