Configure the network packet size (opção de configuração do servidor)

Aplica-se a:SQL Server

Este artigo descreve como configurar a opção de configuração de servidor network packet size no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. A opção network packet size define o tamanho do pacote (em bytes) usado pela rede inteira. 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 você tenha certeza que 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 e restriçõ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 der suporte ao tamanho de pacote solicitado, o Mecanismo de Banco de Dados enviará uma mensagem de aviso ao cliente. Em algumas circunstâncias, alterar o tamanho de pacote pode conduzir a uma falha de link de comunicação, como esta:

    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 AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'network packet size', 6500;
GO
RECONFIGURE;
GO

Para obter mais informações, confira Opções de configuração do servidor (SQL Server).

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, confira Página inicial para programação de cliente SQL:

Biblioteca do cliente Opção Padrão
ODBC SQL_ATTR_PACKET_SIZE Usar o lado do servidor
JDBC setPacketSize(int packetSize) 8000
ADO.NET – Microsoft.Data.SqlClient PacketSize 8000
ADO.NET – System.Data.SqlClient PacketSize 8000
OLEDB 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.

Observação

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 configurado 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 Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) ou o Microsoft ODBC Driver for SQL Server mais recente no futuro.

Confira também