2009-10-07 24 views
9

Puede alguien decirme la diferencia efectiva entre las siguientes cadenas de conexión:¿Diferencia entre estas cadenas de conexión?

<add key="ConnectionString" value="server=tcp:192.168.0.12\Sqlserver2005;database=;user id=sa;password=;"> 



<add key="ConnectionString" value="server=192.168.0.12\Sqlserver2005;database=;user id=sa;password=;Network Library=DBMSSOCN;"> 

Creo que ambos son efectivamente la misma. La especificación de "Biblioteca de red = DBMSSOCN" se conecta explícitamente utilizando TCPIP y el valor del servidor de prefijación con TCP hace lo mismo.

Por favor dígame si existe alguna diferencia o implicación en el rendimiento al especificar estas configuraciones en web.config.

Respuesta

11

La diferencia entre las dos opciones es:

Especificación del protocolo de

Mediante el uso de cualquiera de los dos,

multiprotocolo = RPC

memoria compartida = lpc

NWlink IPX/SPX = spx

Banyan Vines = vides

Apple Talk = ADSP

TCP = tcp

Esta es la forma recomendada. También creo que es más seguro ya que los nombres DLL son más propensos a cambiar que los nombres de protocolo.

También le permite cambiar el número de puerto, en lugar de configurarlo de manera general mediante la herramienta de red de cliente de SQL Server.

Specyfying la biblioteca sin la DLL de extensión

Especificación de la biblioteca va a utilizar el mismo nombre que el archivo real de la biblioteca DLL de la red sin la extensión .dll.

Ejemplo:

TCP/IP: C: \ WINDOWS \ system32 \ Dbmssocn.dll

canalizaciones con nombre: C: \ WINDOWS \ system32 \ Dbnmpntw.dll

multiprotocolo (RPC): C: \ WINDOWS \ system32 \ Dbmsrpcn.dll

NWLink IPX/SPX: C: \ WINDOWS \ system32 \ DBMSSPXN.dll

AppleTalk: C: \ WINDOWS \ system32 \ Dbmsadsn.dll

Banyan VINES: C: \ WINDOWS \ system32 \ Dbmsvinn.dll

Esto funciona mejor cuando se quiere escribir su propia biblioteca de red. Consulte la herramienta de red de cliente SQL Server.

La compensación de rendimiento es mínima y no se nota. Lo mejor es cumplir con los estándares y configurarlo en la web.config, ya que otros desarrolladores sabrán dónde buscar la configuración de las conexiones. Similar a tener una conexión de fuente de datos en Java.

3

En cuanto a la Network Library=: directamente de la Microsoft source:

  • dbnmpntw - Win32 Named Pipes
  • dbmssocn - Win32 Winsock TCP/IP
  • dbmsspxn - Win32 SPX/IPX
  • dbmsvinn - Win32 Banyan Vines
  • dbmsrpcn - Win32 multiprotocolo (RPC de Windows)

SQL Server utiliza el protocolo TCP/IP por defecto, así que no hay necesidad de especificar la misma. Se puede encontrar un artículo completo sobre la cadena de conexión here.

Cuestiones relacionadas