Establecimiento de la opción de configuración del servidor Bloqueos

Se aplica a:SQL Server

En este tema se describe cómo establecer la opción de configuración del servidor bloqueos en SQL Server mediante SQL Server Management Studio o Transact-SQL. La opción de bloqueos establece el número máximo de bloqueos disponibles, limitando de este modo la cantidad de memoria que el Motor de base de datos de SQL Server usa para ellos. El valor predeterminado es 0, lo que permite al Motor de base de datos asignar y cancelar la asignación de estructuras de bloqueo de manera dinámica a partir de los requisitos variables del sistema.

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

En este tema

Antes de empezar

Recomendaciones

  • Esta opción es avanzada y solo debe cambiarla un administrador de base de datos con experiencia o un profesional certificado de SQL Server.

  • Cuando se inicia el servidor con un valor de 0 para bloqueos , 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 bloqueos , la ampliación de bloqueo se produce cuando el número de bloqueos alcanza el 40% del valor especificado para bloqueos.

Seguridad

Permisos

De forma predeterminada, todos los usuarios tienen permisos de ejecución en sp_configure sin ningún parámetro o solo con el primero. Para ejecutar sp_configure con ambos parámetros y cambiar una opción de configuración, o para ejecutar la instrucción RECONFIGURE, un usuario debe tener el permiso ALTER SETTINGS en el servidor. Los roles fijos de servidor sysadmin y serveradmin tienen el permiso ALTER SETTINGS de forma implícita.

Uso de SQL Server Management Studio

Para configurar la opción locks

  1. En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.

  2. Haga clic en el nodo Avanzado .

  3. En Paralelismo, escriba el valor deseado para la opción locks .

    Use la opción locks para establecer el número máximo de bloqueos disponibles y limitar así la cantidad de memoria que SQL Server utiliza para los mismos.

Usar Transact-SQL

Para configurar la opción locks

  1. Conéctese con el Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En este ejemplo se muestra cómo usar sp_configure para establecer el valor de la opción de locks para establecer el número de bloqueos disponibles para todos los usuarios en 20000.

USE AdventureWorks2022;  
GO  
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'locks', 20000;  
GO  
RECONFIGURE;  
GO  

Para más información, consulte Opciones de configuración de servidor (SQL Server).

Seguimiento: Después de configurar la opción de bloqueos

El servidor debe reiniciarse para que el valor surta efecto.

Consulte también

RECONFIGURE (Transact-SQL)
Opciones de configuración de servidor (SQL Server)
sp_configure (Transact-SQL)