Configuración del servidor: bloqueos
Se aplica a: SQL Server
En este artículo se describe cómo configurar la opción de configuración del locks
servidor en SQL Server mediante SQL Server Management Studio o Transact-SQL. La locks
opción establece el número máximo de bloqueos disponibles, que limita la cantidad de memoria que usa SQL Server Motor de base de datos 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.
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 el servidor se inicia con establecido 0
en locks
, el administrador de bloqueos adquiere suficiente memoria de la Motor de base de datos para un grupo inicial de 2500 estructuras de bloqueo. A medida que se agota el grupo de bloqueos, se adquiere más memoria para el grupo.
Por lo general, si se requiere más memoria para el grupo de bloqueos que está disponible en el grupo de memoria de Motor de base de datos, y hay más memoria del equipo disponible (no se ha alcanzado el umbral), el max server memory
Motor de base de datos asigna memoria dinámicamente para satisfacer la solicitud de bloqueos. Sin embargo, si la asignación de esa memoria provocaría la paginación en el nivel de sistema operativo (por ejemplo, si otra aplicación se ejecuta en el mismo equipo que una instancia de SQL Server y el uso de esa memoria), no se asigna más espacio de bloqueo. El grupo de bloqueo dinámico no adquiere más del 60 % de la memoria asignada a la Motor de base de datos. Una vez que el grupo de bloqueos alcanza el 60 % de la memoria adquirida por una instancia del Motor de base de datos, o no hay más memoria disponible en el equipo, las solicitudes adicionales de bloqueo generan un error.
La configuración recomendada es permitir que SQL Server utilice los bloqueos de manera dinámica. Sin embargo, puede establecer locks
e invalidar la capacidad de SQL Server para asignar recursos de bloqueo dinámicamente. Cuando locks
se establece en un valor distinto 0
de , el Motor de base de datos no puede asignar más bloqueos que el valor especificado en locks
. Aumente este valor si SQL Server muestra un mensaje que superó 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 locks
opción también afecta cuando se produce la extensión de bloqueo. Cuando locks
se establece en 0
, la extensión de bloqueo se produce cuando la memoria usada por las estructuras de bloqueo actual alcanza el 40 % del grupo de memoria de Motor de base de datos. Cuando locks
no se establece en 0
, la extensión de bloqueo se produce cuando el número de bloqueos alcanza el 40 % del valor especificado para locks
.
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.
Usar SQL Server Management Studio
En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.
Seleccione el nodo Avanzado.
En Paralelismo, escriba el valor deseado para la
locks
opción .Use la
locks
opción para establecer el número máximo de bloqueos disponibles, que limita la cantidad de memoria que usa SQL Server para ellos.
Uso de Transact-SQL
Conéctese con el Motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione 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 en20000
.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'locks', 20000; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Para obtener más información, vea Opciones de configuración de servidor.
Seguimiento: Después de configurar la opción bloqueos
El servidor debe reiniciarse para que el valor surta efecto.