sp_lock (Transact-SQL)sp_lock (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Genera información acerca de los bloqueos.Reports information about locks.

Importante

Esta característica se quitará en una versión futura de Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Para obtener información sobre los bloqueos en el Motor de base de datos de SQL ServerSQL Server Database Engine, use la sys.dm_tran_locks vista de administración dinámica. To obtain information about locks in the Motor de base de datos de SQL ServerSQL Server Database Engine, use the sys.dm_tran_locks dynamic management view.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]  
[ ; ]  

ArgumentosArguments

[ @spid1 = ] 'sesión ID1'[ @spid1 = ] 'session ID1'
Es un Motor de base de datosDatabase Engine número de Id. de sesión de sys.dm_exec_sessions para que el usuario desea información de bloqueo.Is a Motor de base de datosDatabase Engine session ID number from sys.dm_exec_sessions for which the user wants locking information. sesión ID1 es int con un valor predeterminado es NULL.session ID1 is int with a default value of NULL. Ejecutar sp_who para obtener información de proceso acerca de la sesión.Execute sp_who to obtain process information about the session. Si sesión ID1 no se especifica, se muestra información sobre todos los bloqueos.If session ID1 is not specified, information about all locks is displayed.

[ @spid2 = ] 'sesión ID2'[ @spid2 = ] 'session ID2'
Es otra Motor de base de datosDatabase Engine número de Id. de sesión de sys.dm_exec_sessions que puede tener un bloqueo al mismo tiempo como sesión ID1 y sobre los que el usuario también desea obtener información.Is another Motor de base de datosDatabase Engine session ID number from sys.dm_exec_sessions that might have a lock at the same time as session ID1 and about which the user also wants information. sesión ID2 es int con un valor predeterminado es NULL.session ID2 is int with a default value of NULL.

Valores de código de retornoReturn Code Values

0 (correcto)0 (success)

Conjuntos de resultadosResult Sets

El sp_lock conjunto de resultados contiene una fila por cada bloqueo de las sesiones especificadas en el @spid1 y @spid2 parámetros.The sp_lock result set contains one row for each lock held by the sessions specified in the @spid1 and @spid2 parameters. Si no @spid1 ni @spid2 se especifica, el conjunto de resultados informa los bloqueos para todas las sesiones actualmente activas en la instancia de la Motor de base de datosDatabase Engine.If neither @spid1 nor @spid2 is specified, the result set reports the locks for all sessions currently active in the instance of the Motor de base de datosDatabase Engine.

Nombre de columnaColumn name Tipo de datosData type DescriptionDescription
SPIDspid smallintsmallint Número de Id. de sesión del Motor de base de datosDatabase Engine del proceso que solicita el bloqueo.The Motor de base de datosDatabase Engine session ID number for the process requesting the lock.
dbiddbid smallintsmallint El número de identificación de la base de datos en la que se mantiene el bloqueo.The identification number of the database in which the lock is held. Puede utilizar la función DB_NAME() para identificar la base de datos.You can use the DB_NAME() function to identify the database.
ObjIdObjId intint El número de identificación del objeto en el que se mantiene el bloqueo.The identification number of the object on which the lock is held. Puede utilizar la función OBJECT_NAME() en la base de datos relacionada para identificar el objeto.You can use the OBJECT_NAME() function in the related database to identify the object. El valor 99 constituye un caso especial que indica un bloqueo en una de las páginas del sistema utilizadas para registrar la asignación de páginas en una base de datos.A value of 99 is a special case that indicates a lock on one of the system pages used to record the allocation of pages in a database.
IndIdIndId smallintsmallint Número de identificación del índice en el que se mantiene el bloqueo.The identification number of the index on which the lock is held.
TipoType nchar(4)nchar(4) Tipo de bloqueo.The lock type:

RID = Bloqueo en una única fila de una tabla identificada por un identificador de fila (RID).RID = Lock on a single row in a table identified by a row identifier (RID).

KEY = Bloqueo en un índice que protege un intervalo de claves en transacciones serializables.KEY = Lock within an index that protects a range of keys in serializable transactions.

PAG = Bloqueo en una página de datos o de índices.PAG = Lock on a data or index page.

EXT = Bloqueo en una extensión.EXT = Lock on an extent.

TAB = Bloqueo en toda una tabla, incluidos todos los datos y los índices.TAB = Lock on an entire table, including all data and indexes.

DB = Bloqueo en una base de datos.DB = Lock on a database.

FIL = Bloqueo en un archivo de base de datos.FIL = Lock on a database file.

APP = Bloqueo en un recurso especificado por la aplicación.APP = Lock on an application-specified resource.

MD = Bloqueos de metadatos o información de catálogo.MD = Locks on metadata, or catalog information.

HBT = Bloqueo en un índice de montón o de árbol b.HBT = Lock on a heap or B-Tree index. Esta información está incompleta en SQL ServerSQL Server.This information is incomplete in SQL ServerSQL Server.

AU = Bloqueo en una unidad de asignación.AU = Lock on an allocation unit. Esta información está incompleta en SQL ServerSQL Server.This information is incomplete in SQL ServerSQL Server.
RecursosResource nchar(32)nchar(32) El valor que identifica el recurso bloqueado.The value identifying the resource that is locked. El formato del valor depende del tipo de recurso identificado en el tipo columna:The format of the value depends on the type of resource identified in the Type column:

Tipo de valor: recursos valorType Value: Resource Value

RID: un identificador con formato fileid:pagenumber:rid, donde fileid identifica el archivo que contiene la página, pagenumber identifica la página que contiene la fila y rid identifica la fila específica en la página.RID: An identifier in the format fileid:pagenumber:rid, where fileid identifies the file containing the page, pagenumber identifies the page containing the row, and rid identifies the specific row on the page. FileID coincide con el file_id columna en el sys.database_files vista de catálogo.fileid matches the file_id column in the sys.database_files catalog view.

KEY: un número hexadecimal utilizado internamente por Motor de base de datosDatabase Engine.KEY: A hexadecimal number used internally by the Motor de base de datosDatabase Engine.

PAG: un número con formato idDeArchivo:númeroDePágina, donde idDeArchivo identifica el archivo que contiene la página y númeroDePágina identifica la página.PAG: A number in the format fileid:pagenumber, where fileid identifies the file containing the page, and pagenumber identifies the page.

EXT: un número que identifica la primera página de la extensión.EXT: A number identifying the first page in the extent. El número tiene un formato idDeArchivo:númeroDePágina.The number is in the format fileid:pagenumber.

PESTAÑA: No se proporciona información porque la tabla ya se ha identificado en el ObjId columna.TAB: No information provided because the table is already identified in the ObjId column.

DB: No se proporciona información porque la base de datos se ha identificado en el dbid columna.DB: No information provided because the database is already identified in the dbid column.

FIL: El identificador del archivo, que coincide con el file_id columna en el sys.database_files vista de catálogo.FIL: The identifier of the file, which matches the file_id column in the sys.database_files catalog view.

APP: un identificador único para el recurso de la aplicación que se está bloqueando.APP: An identifier unique to the application resource being locked. En el formato DbPrincipleId:<dos primeras a 16 caracteres de la cadena de recurso ><aplica un algoritmo hash valor >.In the format DbPrincipleId:<first two to 16 characters of the resource string><hashed value>.

MD: varía por tipo de recurso.MD: varies by resource type. Para obtener más información, vea la descripción de la resource_description columna sys.dm_tran_locks ( Transact-SQL ) .For more information, see the description of the resource_description column in sys.dm_tran_locks (Transact-SQL).

HBT: no se proporciona información.HBT: No information provided. Use la sys.dm_tran_locks vista de administración dinámica en su lugar.Use the sys.dm_tran_locks dynamic management view instead.

AU: no se proporciona información.AU: No information provided. Use la sys.dm_tran_locks vista de administración dinámica en su lugar.Use the sys.dm_tran_locks dynamic management view instead.
ModoMode nvarchar (8)nvarchar(8) El modo de bloqueo solicitado.The lock mode requested. Puede ser:Can be:

NULL = No se concede acceso al recurso.NULL = No access is granted to the resource. Sirve como marcador de posición.Serves as a placeholder.

Sch-S = Estabilidad del esquema.Sch-S = Schema stability. Garantiza que un elemento de un esquema, como una tabla o un índice, no se quite mientras una sesión mantenga un bloqueo de estabilidad del esquema sobre él.Ensures that a schema element, such as a table or index, is not dropped while any session holds a schema stability lock on the schema element.

Sch-M = Modificación del esquema.Sch-M = Schema modification. Debe mantenerlo cualquier sesión que desee cambiar el esquema del recurso especificado.Must be held by any session that wants to change the schema of the specified resource. Garantiza que ninguna otra sesión se refiera al objeto indicado.Ensures that no other sessions are referencing the indicated object.

S = Compartido.S = Shared. La sesión que lo mantiene recibe acceso compartido al recurso.The holding session is granted shared access to the resource.

U = Actualizar.U = Update. Indica que se ha obtenido un bloqueo de actualización sobre recursos que finalmente se pueden actualizar.Indicates an update lock acquired on resources that may eventually be updated. Se utiliza para evitar una forma común de interbloqueo que tiene lugar cuando varias sesiones bloquean recursos para una posible actualización más adelante.It is used to prevent a common form of deadlock that occurs when multiple sessions lock resources for potential update at a later time.

X = Exclusivo.X = Exclusive. La sesión que lo mantiene recibe acceso exclusivo al recurso.The holding session is granted exclusive access to the resource.

IS = Intención compartida.IS = Intent Shared. Indica la intención de establecer bloqueos S en algún recurso subordinado de la jerarquía de bloqueos.Indicates the intention to place S locks on some subordinate resource in the lock hierarchy.

IU = Actualizar intención.IU = Intent Update. Indica la intención de establecer bloqueos U en algún recurso subordinado de la jerarquía de bloqueos.Indicates the intention to place U locks on some subordinate resource in the lock hierarchy.

IX = intención exclusiva.IX = Intent Exclusive. Indica la intención de colocar bloqueos X en algunos recursos subordinados en la jerarquía de bloqueos.Indicates the intention to place X locks on some subordinate resource in the lock hierarchy.

SIU = Actualizar intención compartida.SIU = Shared Intent Update. Indica el acceso compartido a un recurso con la intención de obtener bloqueos de actualización sobre recursos subordinados en la jerarquía de bloqueos.Indicates shared access to a resource with the intent of acquiring update locks on subordinate resources in the lock hierarchy.

SIX = Intención compartida exclusiva.SIX = Shared Intent Exclusive. Indica acceso compartido a un recurso con la intención de obtener bloqueos exclusivos sobre recursos subordinados de la jerarquía de bloqueos.Indicates shared access to a resource with the intent of acquiring exclusive locks on subordinate resources in the lock hierarchy.

UIX = Actualizar intención exclusiva.UIX = Update Intent Exclusive. Indica un bloqueo de actualización en un recurso con la intención de adquirir bloqueos exclusivos sobre recursos subordinados en la jerarquía de bloqueos.Indicates an update lock hold on a resource with the intent of acquiring exclusive locks on subordinate resources in the lock hierarchy.

BU = Actualización masiva.BU = Bulk Update. Utilizado en las operaciones masivas.Used by bulk operations.

RangeS_S = Intervalo de claves compartido y bloqueo de recurso compartido.RangeS_S = Shared Key-Range and Shared Resource lock. Indica recorrido de intervalo serializable.Indicates serializable range scan.

RangeS_U = Intervalo de claves compartido y bloqueo de recurso de actualización.RangeS_U = Shared Key-Range and Update Resource lock. Indica recorrido de actualización serializable.Indicates serializable update scan.

RangeI_N = Insertar intervalo de claves y bloqueo de recurso Null.RangeI_N = Insert Key-Range and Null Resource lock. Se utiliza para probar los intervalos antes de insertar una clave nueva en un índice.Used to test ranges before inserting a new key into an index.

RangeI_S = Bloqueo de conversión de intervalo de claves.RangeI_S = Key-Range Conversion lock. Creado por una superposición de bloqueos RangeI_N y S.Created by an overlap of RangeI_N and S locks.

RangeI_U = Bloqueo de conversión de intervalo de claves creado por una superposición de bloqueos RangeI_N y U.RangeI_U = Key-Range Conversion lock created by an overlap of RangeI_N and U locks.

RangeI_X = Bloqueo de conversión de intervalo de claves creado por una superposición de bloqueos RangeI_N y X.RangeI_X = Key-Range Conversion lock created by an overlap of RangeI_N and X locks.

RangeX_S = Bloqueo de conversión de rango de claves creado por una superposición de bloqueos RangeI_N y RangeS_SRangeX_S = Key-Range Conversion lock created by an overlap of RangeI_N and RangeS_S. bloqueos.locks.

RangeX_U = Bloqueo de conversión de intervalo de claves creado por una superposición de bloqueos RangeI_N y RangeS_U.RangeX_U = Key-Range Conversion lock created by an overlap of RangeI_N and RangeS_U locks.

RangeX_X = Intervalo de claves exclusivo y bloqueo de recurso exclusivo.RangeX_X = Exclusive Key-Range and Exclusive Resource lock. Es un bloqueo de conversión que se utiliza cuando se actualiza una clave de un intervalo.This is a conversion lock used when updating a key in a range.
EstadoStatus nvarchar (5)nvarchar(5) Estado de solicitud de bloqueo:The lock request status:

CNVRT: el bloqueo se está convirtiendo desde otro modo, pero la conversión es bloqueada por otro proceso que mantiene un bloqueo con un modo en conflicto.CNVRT: The lock is being converted from another mode, but the conversion is blocked by another process holding a lock with a conflicting mode.

GRANT: se ha obtenido el bloqueo.GRANT: The lock was obtained.

WAIT: el bloqueo es bloqueado por otro proceso que mantiene un bloqueo con un modo en conflicto.WAIT: The lock is blocked by another process holding a lock with a conflicting mode.

ComentariosRemarks

Los usuarios pueden controlar el bloqueo de las operaciones de lectura:Users can control the locking of read operations by:

PermissionsPermissions

Requiere el permiso VIEW SERVER STATE.Requires VIEW SERVER STATE permission.

EjemplosExamples

A.A. Mostrar todos los bloqueosListing all locks

En el ejemplo siguiente se muestra información acerca de todos los bloqueos mantenidos en una instancia de Motor de base de datosDatabase Engine.The following example displays information about all locks currently held in an instance of the Motor de base de datosDatabase Engine.

USE master;  
GO  
EXEC sp_lock;  
GO  

B.B. Mostrar un bloqueo de un proceso de servidor únicoListing a lock from a single-server process

En el ejemplo siguiente se muestra información, incluidos los bloqueos, acerca del proceso con Id. 53.The following example displays information, including locks, about process ID 53.

USE master;  
GO  
EXEC sp_lock 53;  
GO  

Vea tambiénSee Also

Sys.dm_tran_locks ( Transact-SQL ) sys.dm_tran_locks (Transact-SQL)
Db_name ( Transact-SQL ) DB_NAME (Transact-SQL)
KILL ( Transact-SQL ) KILL (Transact-SQL)
Object_name ( Transact-SQL ) OBJECT_NAME (Transact-SQL)
sp_who ( Transact-SQL ) sp_who (Transact-SQL)
sys.database_files (Transact-SQL) sys.database_files (Transact-SQL)
Sys.dm_os_tasks ( Transact-SQL ) sys.dm_os_tasks (Transact-SQL)
Sys.dm_os_threads ( Transact-SQL )sys.dm_os_threads (Transact-SQL)