Compartir por


Configuración del servidor: tamaño de paquete de red

Se aplica a: SQL Server

En este artículo se describe cómo configurar la opción de configuración del network packet size servidor en SQL Server mediante SQL Server Management Studio o Transact-SQL. La network packet size opción establece el tamaño del paquete (en bytes) que se usa en 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 del paquete 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

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 de paquete solicitado, el Motor de base de datos envía un mensaje de advertencia al cliente. En algunas circunstancias, cambiar el tamaño del paquete podría provocar un error de vínculo de comunicación, como el siguiente error:

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 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 obtener más información, vea Opciones de configuración de servidor.

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 diversas tecnologías de conexión de datos que puede usar para conectarse a SQL Server, consulte Página principal de programación de cliente en Microsoft SQL Server:

Biblioteca de cliente Opción Valor predeterminado
Función SQLSetConnectAttr SQL_ATTR_PACKET_SIZE Uso del lado servidor
Establecimiento de las propiedades de conexión setPacketSize(int packetSize) 8000
ADO.NET - Microsoft.Data.SqlClient PacketSize 8000
ADO.NET - System.Data.SqlClient PacketSize 8000
Propiedades de inicialización y autorización 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.

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 que ha 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). Tanto el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) como el proveedor MICROSOFT OLE DB heredado para SQL Server (SQLOLEDB) no se recomiendan para el nuevo desarrollo. Cambie al nuevo controlador OLE DB de Microsoft para SQL Server o a la versión más reciente de Microsoft ODBC Driver for SQL Server en el futuro.