Establecimiento de la opción de configuración del servidor Tamaño de paquete de red

Se aplica a:SQL Server

En este artículo se describe cómo establecer la opción de configuración tamaño de paquete de red del servidor en SQL Server mediante SQL Server Management Studio o Transact-SQL. La opción de tamaño de paquete de red establece el tamaño de paquete (en bytes) que se usa para toda la red. Los paquetes son fragmentos de datos de tamaño fijo que transfieren solicitudes y resultados entre clientes y servidores. El tamaño predeterminado de los paquetes es de 4096 bytes.

Nota

No cambie el tamaño de los paquetes a menos que esté seguro de que mejorará el rendimiento. En la mayoría de las aplicaciones, el tamaño más conveniente de los paquetes es el tamaño predeterminado.

La configuración surte efecto inmediatamente, sin necesidad de reiniciar el servidor.

Limitaciones y restricciones

  • El tamaño de paquete de red máximo para las conexiones cifradas es de 16.383 bytes.

Nota

Si MARS está habilitado, el proveedor SMUX agregará un encabezado de 16 bytes al paquete antes del cifrado TLS, lo que reduce el tamaño de paquete de red máximo a 16368 bytes.

Recomendaciones

  • Esta opción es avanzada y solo debe cambiarla un administrador de base de datos con experiencia o un profesional certificado de SQL Server.

  • Si una aplicación realiza operaciones de copia masiva, o bien envía o recibe una gran cantidad de datos de texto o imagen, el uso de paquetes de un tamaño superior al predeterminado podría mejorar la eficacia, ya que tiene como resultado un número menor de operaciones de lectura y escritura en la red. Si una aplicación envía y recibe pequeñas cantidades de información, puede establecer un tamaño de 512 bytes para cada paquete, lo que es suficiente para la mayor parte de las transferencias de datos.

  • En sistemas que usen diferentes protocolos de red, establezca el tamaño de paquete de red en el tamaño para el protocolo más usado. La opción network packet size mejora el rendimiento de la red cuando los protocolos de red admiten paquetes más grandes. Las aplicaciones cliente pueden suplantar este valor.

  • También puede llamar a funciones de OLE DB, Conectividad abierta de bases de datos (ODBC) y DB-Library para solicitar un cambio del tamaño de los paquetes. Si el servidor no puede admitir el tamaño del paquete solicitado, el Motor de base de datos enviará un mensaje de advertencia al cliente. En algunos casos, el cambio del tamaño del paquete podría crear un error del vínculo de comunicación como el siguiente:

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

Permisos

De forma predeterminada, todos los usuarios tienen permisos de ejecución en sp_configure sin ningún parámetro o solo con el primero. 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. Los roles fijos de servidor sysadmin y serveradmin tienen el permiso ALTER SETTINGS de forma implícita.

Usar SQL Server Management Studio

  1. En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.

  2. Seleccione el nodo Avanzado.

  3. En Red, seleccione un valor para el cuadro Tamaño de paquete de red .

Uso de Transact-SQL

  1. Conéctese con el Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. En este ejemplo se muestra cómo usar sp_configure para establecer el valor de la opción de network packet size en 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 más información, consulte Opciones de configuración de servidor (SQL Server).

Configuración del tamaño del paquete de red en el lado cliente

En la tabla siguiente se proporcionan ejemplos de algunas tecnologías de conexión de datos que puede usar para conectarse a SQL Server y se muestra cómo controlar el tamaño del paquete de red cuando se usan en aplicaciones cliente. Para obtener una lista completa de varias tecnologías de conexión de datos que puede usar para conectarse a SQL Server, consulte Página principal de la programación de clientes de Microsoft SQL Server:

Biblioteca de cliente Opción Valor predeterminado
ODBC SQL_ATTR_PACKET_SIZE Uso del lado 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 (uso del lado servidor)

Puede supervisar el evento Audit Login o el evento ExistingConnection en SQL Profiler para determinar el tamaño del paquete de red de una conexión de cliente.

Nota

Si la cadena de conexión de la aplicación contiene un valor para el tamaño del paquete de red, ese valor se usa para la comunicación. Si la cadena de conexión no contiene un valor, los controladores usan los valores predeterminados para el tamaño del paquete de red. Por ejemplo, como se describe en la tabla anterior, las aplicaciones SqlClient usan un tamaño de paquete predeterminado de 8000, mientras que las aplicaciones ODBC usan el tamaño de paquete configurado en el servidor.

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). No se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft heredado para SQL Server (SQLOLEDB) para el nuevo desarrollo. Cambie al nuevo controlador Microsoft OLE DB para SQL Server o al controlador ODBC para SQL Server más reciente de ahora en adelante.

Vea también