Cuando se conecta a un SQL Server 2008 R2 desde una aplicación cliente .NET 4 en un servidor diferente en la misma LAN, se pueden establecer tres protocolos de red diferentes:
- TCP
- Tubos con nombre
- No establezca nada en la cadena de conexión y use el valor predeterminado
¿Cuál es la mejor práctica? Que elegir
Información adicional: tanto TCP como Canalizaciones con nombre están habilitadas tanto en el servidor como en el cliente. La aplicación está utilizando la creación de reflejo de la base de datos. El cliente y el servidor se comunican a través de una LAN rápida.
Estamos investigando esto porque tenemos problemas de conectividad y tiempo de espera poco frecuentes y espurios. (Pero independientemente de eso me gustaría saber la mejor práctica).
Hay un artículo sobre este tema en MSDN pero es muy genérico y vago. No aconseja ni recomienda nada útil.
tcp:
configurado como parte de la mayoría de las cadenas de conexión en el entorno de una compañía diferente años más tarde. Supongo que encontraron problemas similares.Respuestas:
Prefiero TCP / IP sobre canalizaciones con nombre, aunque en la mayoría de las situaciones no habrá una diferencia notable. Puede hacerlo ajustando los protocolos admitidos por la instancia en el Administrador de configuración de SQL Server en lugar de codificar las cosas en su cadena de conexión (esto facilita hacer cambios o solucionar problemas).
Esencialmente, el enrutamiento y otros gastos generales involucrados con las canalizaciones con nombre (a menos que sus aplicaciones estén en la misma máquina que SQL Server, en cuyo caso solo hay un poco de sobrecarga adicional) lo convierten en la opción menos eficiente, especialmente a escala, en un entorno de red más lento (100 MB o menos), o si sus cargas de trabajo vienen en ráfagas.
Si sus aplicaciones están en el mismo cuadro que SQL Server, también debe tener en cuenta la memoria compartida: si tiene aplicaciones en el cuadro de SQL Server que se comunican directamente con SQL Server, esta será la opción más eficiente.
Puede leer sobre las ventajas de rendimiento de TCP / IP con más detalle .
fuente
Los protocolos de canalizaciones con nombre son útiles para la aplicación que están diseñados en torno a NetBIOS u otros protocolos basados en LAN.
Las canalizaciones con nombre proporcionan un fácil acceso a las llamadas a procedimiento remoto (RPC) dentro de un solo dominio de seguridad y, por lo tanto, es ventajoso para estas aplicaciones.
Por lo general, el protocolo TCP es bueno en la práctica porque no tiene que preocuparse por todo esto en la red.
fuente