locks (opción)

Utilice la opción locks para establecer el número máximo de bloqueos disponibles y limitar así la cantidad de memoria que el Motor de base de datos utiliza para los mismos. El valor predeterminado es 0, lo que permite a Motor de base de datos asignar y cancelar la asignación de estructuras de bloqueos de manera dinámica a partir de los requisitos variables del sistema.

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.

Cuando se inicia el servidor con un valor de 0 para locks, el administrador de bloqueos obtendrá suficiente memoria del Motor de base de datos para un grupo inicial de 2.500 estructuras de bloqueo. A medida que se agota el grupo de bloqueos, se adquiere más memoria para el grupo.

Generalmente, si se necesita más memoria para el grupo de bloqueos que la disponible en el bloque de memoria del Motor de base de datos, y hay más memoria en el equipo (no se ha alcanzado el umbral especificado en la opción Memoria de servidor máxima), el Motor de base de datos asignará memoria de manera dinámica para satisfacer la solicitud de bloqueos. No obstante, si la asignación de esa memoria puede causar la paginación en el sistema operativo (por ejemplo, si se está ejecutando otra aplicación en el mismo equipo que una instancia de SQL Server y está utilizando esa memoria), no se asignará más espacio para bloqueos. El grupo de bloqueos dinámicos no obtendrá más del 60% de la memoria asignada para el Motor de base de datos. Cuando el grupo de bloqueos alcanza el 60% de la memoria obtenida por una instancia del Motor de base de datos, o cuando ya no queda más memoria disponible en el equipo, se generará un error si se producen más solicitudes de bloqueos.

La configuración recomendada es permitir que SQL Server utilice los bloqueos de manera dinámica. No obstante, puede establecer la opción locks e invalidar la capacidad de SQL Server para asignar recursos de bloqueo de manera dinámica. Cuando se selecciona un valor para locks distinto de 0, el Motor de base de datos no puede asignar más bloqueos que el número especificado en el valor locks. Aumente este valor si SQL Server muestra un mensaje en el que se indica que se ha superado el número de bloqueos disponibles. Como cada bloqueo consume memoria (96 bytes por bloqueo), el aumento de este valor puede requerir el aumento de la cantidad de memoria dedicada al servidor.

La opción locks también afecta al momento en el que se produce la ampliación de bloqueo. Cuando se selecciona el valor 0 para locks, la ampliación de bloqueo se produce cuando la memoria utilizada por las estructuras de bloqueo actuales alcanza el 40% del bloque de memoria del Motor de base de datos. Cuando se selecciona un valor distinto de 0 para locks, la ampliación de bloqueo se produce cuando el número de bloqueos alcanza el 40% del valor especificado para locks.

locks es una opción avanzada. Si está utilizando el procedimiento almacenado del sistema sp_configure para cambiar la configuración, solo podrá cambiar el valor de locks si Mostrar opciones avanzadas está establecido en 1. La configuración surte efecto cuando se reinicia el servidor.