Establecer la opción de configuración del servidor BloqueosConfigure the locks Server Configuration Option

SE APLICA A: síSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

En este tema se describe cómo establecer la opción de configuración del servidor bloqueos en SQL ServerSQL Server mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to configure the locks server configuration option in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-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 ServerSQL Server Database Engine usa para ellos.The locks option sets the maximum number of available locks, thereby limiting the amount of memory the Motor de base de datos de SQL ServerSQL Server Database Engine uses for them. El valor predeterminado es 0, lo que permite al Motor de base de datosDatabase Engine asignar y cancelar la asignación de estructuras de bloqueo de manera dinámica a partir de los requisitos variables del sistema.The default setting is 0, which allows the Motor de base de datosDatabase Engine to allocate and deallocate lock structures dynamically, based on changing system requirements.

Importante

Esta característica se quitará en una versión futura de Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

En este temaIn This Topic

Antes de comenzarBefore You Begin

RecomendacionesRecommendations

  • Esta opción es avanzada y solo debe cambiarla un administrador de base de datos con experiencia o un profesional certificado de SQL ServerSQL Server.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • Cuando se inicia el servidor con un valor de 0 para bloqueos , el administrador de bloqueos obtendrá suficiente memoria del Motor de base de datosDatabase Engine para un grupo inicial de 2.500 estructuras de bloqueo.When the server is started with locks set to 0, the lock manager acquires sufficient memory from the Motor de base de datosDatabase Engine for an initial pool of 2,500 lock structures. A medida que se agota el grupo de bloqueos, se adquiere más memoria para el grupo.As the lock pool is exhausted, additional memory is acquired for the pool.

    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 datosDatabase Engine , 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 datosDatabase Engine asignará memoria de manera dinámica para satisfacer la solicitud de bloqueos.Generally, if more memory is required for the lock pool than is available in the Motor de base de datosDatabase Engine memory pool, and more computer memory is available (the max server memory threshold has not been reached), the Motor de base de datosDatabase Engine allocates memory dynamically to satisfy the request for locks. 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 ServerSQL Server y está utilizando esa memoria), no se asignará más espacio para bloqueos.However, if allocating that memory would cause paging at the operating system level (for example, if another application is running on the same computer as an instance of SQL ServerSQL Server and using that memory), more lock space is not allocated. El grupo de bloqueos dinámicos no obtendrá más del 60% de la memoria asignada para el Motor de base de datosDatabase Engine.The dynamic lock pool does not acquire more than 60 percent of the memory allocated to the Motor de base de datosDatabase Engine. Cuando el grupo de bloqueos alcanza el 60% de la memoria obtenida por una instancia del Motor de base de datosDatabase Engine, o cuando ya no queda más memoria disponible en el equipo, se generará un error si se producen más solicitudes de bloqueos.After the lock pool has reached 60 percent of the memory acquired by an instance of the Motor de base de datosDatabase Engine, or no more memory is available on the computer, further requests for locks generate an error.

    La configuración recomendada es permitir que SQL ServerSQL Server utilice los bloqueos de manera dinámica.Allowing SQL ServerSQL Server to use locks dynamically is the recommended configuration. No obstante, puede establecer la opción locks e invalidar la capacidad de SQL ServerSQL Server para asignar recursos de bloqueo de manera dinámica.However, you can set locks and override the ability of SQL ServerSQL Server to allocate lock resources dynamically. Cuando se selecciona un valor para locks distinto de 0, el Motor de base de datosDatabase Engine no puede asignar más bloqueos que el número especificado en el valor locks.When locks is set to a value other than 0, the Motor de base de datosDatabase Engine cannot allocate more locks than the value specified in locks. Aumente este valor si SQL ServerSQL Server muestra un mensaje en el que se indica que se ha superado el número de bloqueos disponibles.Increase this value if SQL ServerSQL Server displays a message that you have exceeded the number of available locks. 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.Because each lock consumes memory (96 bytes per lock), increasing this value can require increasing the amount of memory dedicated to the server.

  • La opción locks también afecta al momento en el que se produce la ampliación de bloqueo.The locks option also affects when lock escalation occurs. 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 datosDatabase Engine .When locks is set to 0, lock escalation occurs when the memory used by the current lock structures reaches 40 percent of the Motor de base de datosDatabase Engine memory pool. 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.When locks is not set to 0, lock escalation occurs when the number of locks reaches 40 percent of the value specified for locks.

SeguridadSecurity

PermisosPermissions

De forma predeterminada, todos los usuarios tienen permisos de ejecución en sp_configure sin ningún parámetro o solo con el primero.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. 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.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. Los roles fijos de servidor sysadmin y serveradmin tienen el permiso ALTER SETTINGS de forma implícita.The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para configurar la opción locksTo configure the locks option

  1. En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.In Object Explorer, right-click a server and select Properties.

  2. Haga clic en el nodo Avanzado .Click the Advanced node.

  3. En Paralelismo, escriba el valor deseado para la opción locks .Under Parallelism, type the desired value for the locks option.

    Use la opción locks para establecer el número máximo de bloqueos disponibles y limitar así la cantidad de memoria que SQL ServerSQL Server utiliza para los mismos.Use the locks option to set the maximum number of available locks, thereby limiting the amount of memory SQL ServerSQL Server uses for them.

Usar Transact-SQLUsing Transact-SQL

Para configurar la opción locksTo configure the locks option

  1. Conéctese con el Motor de base de datosDatabase Engine.Connect to the Motor de base de datosDatabase Engine.

  2. En la barra Estándar, haga clic en Nueva consulta.From the Standard bar, click New Query.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.Copy and paste the following example into the query window and click Execute. 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.This example shows how to use sp_configure to set the value of the locks option to set the number of locks available for all users to 20000.

Use AdventureWorks2012 ;  
GO  
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'locks', 20000;  
GO  
RECONFIGURE;  
GO  

Para obtener más información, vea Opciones de configuración de servidor (SQL Server).For more information, see Server Configuration Options (SQL Server).

Seguimiento: Después de configurar la opción de bloqueosFollow Up: After you configure the locks option

El servidor debe reiniciarse para que el valor surta efecto.The server must be restarted before the setting can take effect.

Consulte tambiénSee Also

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