Configuração do servidor: tamanho do pacote de rede

Aplica-se: SQL Server

Este artigo descreve como configurar a opção de configuração do servidor no SQL Server usando o network packet size SQL Server Management Studio ou o Transact-SQL. A network packet size opção define o tamanho do pacote (em bytes) usado em toda a rede. Os pacotes são partes de dados de tamanho fixo que transferem solicitações e resultados entre clientes e servidores. O tamanho do pacote padrão é de 4.096 bytes.

Observação

Não altere o tamanho do pacote, a menos que tenha certeza de que isso melhorará o desempenho. Para a maioria dos aplicativos, o tamanho do pacote padrão é o melhor.

A configuração entra em vigor imediatamente sem reiniciar o servidor.

Limitações

O tamanho máximo de pacote de rede para conexões criptografadas é 16.383 bytes.

Observação

Se o MARS estiver habilitado, o provedor SMUX adicionará um cabeçalho de 16 bytes ao pacote antes da criptografia TLS, reduzindo o tamanho máximo do pacote de rede para 16368 bytes.

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.

Se um aplicativo fizer operações de cópia em massa ou enviar ou receber grandes quantidades de texto ou dados de imagem, um tamanho do pacote maior que o padrão poderá melhorar a eficiência, porque resulta em menos operações de leitura e gravação em rede. Se um aplicativo enviar e receber pequenas quantidades de informações, o tamanho do pacote poderá ser definido como 512 bytes, o que é suficiente para a maioria das transferências de dados.

Nos sistemas que usam protocolos de rede diferentes, defina network packet size como o tamanho para o protocolo mais comum usado. A opção network packet size melhora o desempenho da rede quando protocolos de rede oferecem suporte a pacotes maiores. Aplicativos cliente podem substituir esse valor.

Você também pode chamar funções OLE DB, ODBC e DB-Library para solicitar uma alteração do tamanho do pacote. Se o servidor não puder dar suporte ao tamanho do pacote solicitado, o Mecanismo de Banco de Dados enviará uma mensagem de aviso ao cliente. Em algumas circunstâncias, alterar o tamanho do pacote pode levar a uma falha no link de comunicação, como o seguinte erro:

Native Error: 233, no process is on the other end of the pipe.

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 Rede, selecione um valor para a caixa Tamanho de Pacote de Rede .

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 network packet size como 6500 bytes.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'network packet size', 6500;
    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.

Configurar o tamanho do pacote de rede no lado do cliente

A tabela a seguir fornece exemplos de algumas tecnologias de conexão de dados que você pode usar para se conectar ao SQL Server e como controlar o tamanho do pacote de rede ao usá-los em aplicativos cliente. Para obter uma lista completa de várias tecnologias de conexão de dados que você pode usar para se conectar ao SQL Server, consulte Página inicial da programação de cliente para o Microsoft SQL Server:

Biblioteca do cliente Opção Padrão
Função SQLSetConnectAttr SQL_ATTR_PACKET_SIZE Usar o lado do servidor
Configuração das propriedades de conexão setPacketSize(int packetSize) 8000
ADO.NET – Microsoft.Data.SqlClient PacketSize 8000
ADO.NET – System.Data.SqlClient PacketSize 8000
Propriedades de inicialização e autorização SSPROP_INIT_PACKETSIZE 0 (usar o lado do servidor)

Você pode monitorar o evento Audit Login ou o evento ExistingConnection no SQL Profiler para determinar o tamanho do pacote de rede de uma conexão de cliente.

Se a cadeia de conexão do aplicativo contiver um valor para o tamanho do pacote de rede, esse valor será usado para comunicação. Se a cadeia de conexão não contiver um valor, os drivers usarão padrões no tamanho do pacote de rede. Por exemplo, conforme descrito na tabela anterior, os aplicativos SqlClient usam um tamanho de pacote padrão de 8000, enquanto os aplicativos ODBC usam o tamanho do pacote que você configurou no servidor.

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o SQL herdado Alterne para o novo Microsoft OLE DB Driver for SQL Server ou o Microsoft ODBC Driver for SQL Server mais recente daqui para frente.