Compartir por


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 0en 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 0de , 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

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

  2. Seleccione el nodo Avanzado.

  3. 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

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

  2. En la barra Estándar, seleccione Nueva consulta.

  3. 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 en 20000.

    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.