Partilhar via


Configuração do servidor: bloqueios

Aplica-se a: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, que permite que o Mecanismo de Banco de Dados aloque e desaaloque estruturas de bloqueio dinamicamente, com base na alteração dos requisitos do sistema.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

Recommendations

Esta opção é uma opção avançada e deve ser alterada apenas por um profissional de banco de dados experiente.

Quando o servidor é iniciado com locks definido como 0, o gerenciador de bloqueio 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 bloqueio se esgota, 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 (MB) 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 sendo executado 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 bloqueio dinâmico não adquire mais de 60% da memória alocada para o Mecanismo de Banco de Dados. Depois que o pool de bloqueios atingir 60% da memória adquirida por uma instância do Mecanismo de Banco de Dados, ou não houver mais memória disponível no computador, novas solicitações de bloqueios gerarão um erro.

Permitir que o SQL Server use bloqueios dinamicamente é a configuração recomendada. 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 ao servidor.

A locks opção também afeta quando ocorre o escalonamento de bloqueio. Quando locks definido como 0, o escalonamento de bloqueio 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 bloqueio ocorre quando o número de bloqueios atinge 40% do valor especificado para locks.

Permissions

As permissões de execução em sp_configure sem parâmetros ou apenas com o primeiro parâmetro 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 RECONFIGURE instrução, um usuário deve receber a permissão no nível do ALTER SETTINGS servidor. A ALTER SETTINGS permissão é mantida implicitamente 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.

Utilize 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 locks valor da opção 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 antes que a configuração possa entrar em vigor.