Configuração do servidor: bloqueios

Aplica-se: SQL Server

Este artigo descreve como configurar a opção de configuração do servidor no SQL Server usando o locks SQL Server Management Studio ou o Transact-SQL. A locks opção define o número máximo de bloqueios disponíveis, o que limita a quantidade de memória que o Mecanismo de Banco de Dados do SQL Server usa para eles. A configuração padrão é 0, a qual permite que o Mecanismo de Banco de Dados aloque e desaloque as estruturas de bloqueio de forma dinâmica, baseado nas alterações de requisitos de sistema.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Recomendações

Esta é uma opção avançada e deve ser alterada somente por um administrador de banco de dados experiente ou por um profissional de SQL Server certificado.

Quando o servidor é iniciado com locks set to 0, o gerenciador de bloqueios adquire memória suficiente do Mecanismo de Banco de Dados para um pool inicial de 2.500 estruturas de bloqueio. À medida que o pool de bloqueios é esgotado, mais memória é adquirida para o pool.

Geralmente, se for necessária mais memória para o pool de bloqueios do que a disponível no pool de memória do Mecanismo de Banco de Dados e mais memória do computador estiver disponível (o max server memory limite não foi atingido), o Mecanismo de Banco de Dados alocará memória dinamicamente para atender à solicitação de bloqueios. No entanto, se a alocação dessa memória causar paginação no nível do sistema operacional (por exemplo, se outro aplicativo estiver em execução no mesmo computador que uma instância do SQL Server e usando essa memória), mais espaço de bloqueio não será alocado. O pool de bloqueios dinâmicos não adquire mais de 60% da memória alocada para o Mecanismo de Banco de Dados. Depois que o pool de bloqueios atinge 60% da memória adquirida por uma instância do Mecanismo de Banco de Dados, ou não há mais memória disponível no computador, outras solicitações de bloqueios geram um erro.

Recomenda-se permitir que o SQL Server use bloqueios dinamicamente. No entanto, você pode definir locks e substituir a capacidade do SQL Server de alocar recursos de bloqueio dinamicamente. Quando locks é definido como um valor diferente de 0, o Mecanismo de Banco de Dados não pode alocar mais bloqueios do que o valor especificado em locks. Aumente esse valor se o SQL Server exibir uma mensagem informando que você excedeu o número de bloqueios disponíveis. Como cada bloqueio consome memória (96 bytes por bloqueio), aumentar esse valor pode exigir o aumento da quantidade de memória dedicada para o servidor.

A locks opção também afeta quando ocorre o escalonamento de bloqueios. Quando locks é definido como 0, o escalonamento de bloqueios ocorre quando a memória usada pelas estruturas de bloqueio atuais atinge 40% do pool de memória do Mecanismo de Banco de Dados. Quando locks não está definido como 0, o escalonamento de bloqueios ocorre quando o número de bloqueios atinge 40% do valor especificado para locks.

Permissões

Permissões de execução sem parâmetros ou com apenas o primeiro parâmetro em sp_configure são concedidas a todos os usuários por padrão. Para executar sp_configure com ambos os parâmetros para alterar uma opção de configuração ou executar a instrução RECONFIGURE, o usuário deve ter a permissão ALTER SETTINGS no nível do servidor. A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin.

Usar o SQL Server Management Studio

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.

  2. Selecione o nó Avançado.

  3. Em Paralelismo, digite o valor desejado para a locks opção.

    Use a locks opção para definir o número máximo de bloqueios disponíveis, o que limita a quantidade de memória que o SQL Server usa para eles.

Usar o Transact-SQL

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo mostra como usar sp_configure para definir o valor da opção locks para definir o número de bloqueios disponíveis para todos os usuários como 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 obter mais informações, consulte Opções de configuração do servidor.

Acompanhamento: depois de configurar a opção de bloqueios

O servidor deve ser reiniciado para que a configuração entre em vigor.