Cuestiones a considerar cuando se cambia el valor predeterminado del tamaño de paquete de red para las conexiones de SQL server


Resumen


La opción de configuración de tamaño de paquete de red de SQL Server se utiliza para establecer el tamaño del paquete (en bytes) que se utilizará cuando se comunica con el servidor SQL. El tamaño se puede establecer en el servidor, así como de algunas de las bibliotecas de lado cliente. El tamaño predeterminado del paquete establecido por Microsoft SQL Server es de 4.096 bytes. Este artículo analiza algunas de las cuestiones que debe tener en cuenta al realizar cambios en esta configuración.

Como se mencionó en la nota siguiente en el tema de libros en pantalla de esta opción, se recomienda que no cambie este valor a menos que esté seguro de que mejorará el rendimiento.

Nota:

No cambie el tamaño de paquete a menos que esté seguro de que mejorará el rendimiento. Para la mayoría de las aplicaciones, el tamaño del paquete predeterminado es mejor.

El tamaño de paquete de red en el servidor puede configurarse mediante la opción de configuración de tamaño de paquete de red .

Para obtener más información sobre cómo controlar esta configuración desde una biblioteca de red de cliente, consulte la siguiente tabla:

 

Biblioteca de cliente

Opción

Valor predeterminado

Cliente nativo de SQL

SSPROP_INIT_PACKETSIZE

0 (utilizar servidor)

System.data.Sqlclient

Tamaño del paquete                         

8000

ODBC

SQL_ATTR_PACKET_SIZE

Uso del lado del servidor

SQLOLEDB

SSPROP_INIT_PACKETSIZE         

4096                      

JDBC

setPacketSize (tamaño del paquete int)

8000

Nota: la documentación actual de Sqlclient indica incorrectamente el tamaño de paquete predeterminado para las conexiones de Sqlclient como 8192. Esto se corregirá en una actualización futura de libros en pantalla.

El tamaño de paquete de red de una conexión de cliente puede determinarse mediante la supervisión de los eventos de Inicio de sesión de auditoría o el evento ExistingConnection en el analizador de SQL. La columna de datos de Datos enteros contiene el tamaño de paquete de red.

Más información


Los distintos problemas que debe tener en cuenta al cambiar el tamaño de paquete de red se documentan a continuación:

  • Limitación de SSL y TLS: Secure Socket Layer (SSL) y su sustitución, Security(TLS) de la capa de transporte, limitan los fragmentos de datos a 16 KB de tamaño. Esto se documenta en RFC 2246 pública (sección 6.2.2) y la implementación actual de la capa de Interfaz de red de SQL (SNI) cumple esta especificación. Utiliza un tamaño de paquete de red es mayor que 16K no es compatible en estos entornos. Esta limitación afecta a los siguientes escenarios:
    • Paquetes SSIS y el recopilador de datos: para obtener más información, consulte el siguiente artículo de Knowledge Base:

      Nota: Si MARS está habilitado, el proveedor SMUX agregará un encabezado de 16 bytes al paquete antes del cifrado SSL, reduciendo el tamaño de paquete máximo de red a 16368 bytes.

      2006769: error de enlace de comunicación ' mensaje de error se notifica para los paquetes SSIS en servidores SQL configurados para utilizar un tamaño de paquete de red de gran tamaño y cifrado

  • SQL Server 2000 y 2005 entornos: consulte el siguiente artículo KB para obtener más información acerca de un problema conocido en estos entornos
    • 903002 Un mensaje de error "No se pudo reservar memoria contigua" puede anotarse en el registro de errores de SQL Server cuando los usuarios se conectan a una instancia de SQL Server utilizando un tamaño de paquete de red es mayor que 8.060 bytes.