Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 8936|Respuesta: 0

Bloqueos SQL NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Copiar enlace]
Publicado en 20/7/2016 14:02:51 | | |

NOLOCK
Cuando se selecciona esta opción, SQL Server lee o modifica los datos sin ningún bloqueo. En este caso, el usuario puede leer datos de una transacción no comprometida o de una reversión hacia atrás, conocido como "datos sucios".

CIERRE DE LA CÁMARA
Cuando se selecciona esta opción, SQL Server mantiene este bloqueo compartido hasta el final de toda la transacción sin liberarlo en el camino.

ACTUALIZACIÓN
Cuando se selecciona esta opción, SQL Server utiliza un bloqueo de modificación en lugar de un bloqueo compartido al leer datos y mantiene este bloqueo hasta el final de toda la transacción o comando. Esta opción garantiza que varios procesos puedan leer datos al mismo tiempo, pero solo ese proceso puede modificar los datos.

TABLOCK
Cuando se selecciona esta opción, SQL Server colocará un bloqueo compartido en toda la tabla hasta que termine el comando. Esta opción garantiza que otros procesos solo puedan leer los datos y no modificarlos.

PAGLOCK
Esta opción es la predeterminada y, cuando se selecciona, SQL Server utiliza un bloqueo de página compartida.

TABLOCKX (Bloqueo de Mesa Exclusivo)
Cuando se selecciona esta opción, SQL Server colocará un bloqueo en toda la tabla hasta que termine el comando o la transacción. Esto evitará que otros procesos lean o modifiquen los datos de la tabla.

HOLDLOCK mantiene el bloqueo compartido hasta que se complete toda la transacción y debe liberarse tan pronto como el objeto bloqueado no sea necesario, igual al nivel de aislamiento de transacciones SERIALIZABLE

La instrucción NOLOCK se ejecuta sin emitir un bloqueo compartido, permitiendo lecturas sucias, que es igual al nivel de aislamiento de transacciones READ UNCOMMITTED

PAGLOCK utiliza múltiples bloqueos de página donde se usa un bloqueo de tabla

READPAST permite al servidor SQL saltar líneas bloqueadas y ejecutar transacciones, y para niveles de aislamiento de transacciones READ NO comprometidos, solo saltar bloqueos de RID, no bloqueos de página, zona y tabla

ROWLOCK impone el uso de rowlocks

TABLOCKX impone el uso de un bloqueo exclusivo a nivel de tabla, que impide que cualquier otra transacción utilice la tabla durante la transacción

UPLOCK obliga a usar actualizaciones al leer una tabla sin un bloqueo compartido

Nota: La diferencia entre bloquear una tabla en una base de datos
SELECT * FROM table WITH (HOLDLOCK) Otras transacciones pueden leer la tabla, pero no pueden actualizarlas ni eliminar
SELECT * FROM table WITH (TABLOCKX) Otras transacciones no pueden leer, actualizar ni eliminar tablas




Anterior:Bloqueos, lecturas sucias, lecturas irrepetibles y lecturas falsas en SQL
Próximo:SQL Server analiza el bloqueo y lo libera
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com