Разница между этими строками подключения? - PullRequest
9 голосов
/ 07 октября 2009

Может кто-нибудь сказать мне эффективную разницу между следующими строками подключения:

<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;">

Я полагаю, что оба в действительности одинаковы. Указание «Сетевая библиотека = DBMSSOCN» явно подключается с использованием TCPIP, а префиксирование значения сервера с TCP делает то же самое.

Скажите, пожалуйста, есть ли разница или какие-либо последствия для производительности при указании этих настроек в web.config.

Ответы [ 3 ]

11 голосов
/ 07 октября 2009

Разница между двумя вариантами:

Указание протокола

Используя либо

Multiprotocol = rpc

Общая память = lpc

NWlink IPX / SPX = spx

Banyan VINES = лозы

Apple Talk = adsp

TCP = tcp

Это рекомендуемый способ. Я также чувствую, что это безопаснее, поскольку имена DLL более вероятны, чем имена протоколов.

Он также позволяет вам изменять номер порта, а не настраивать его по всем каналам с помощью программы сетевого клиента SQL Server.

Указание библиотеки без dll расширения

При указании библиотеки будет использоваться то же имя, что и у самого файла сетевой библиотеки DLL без расширения .dll.

* +1032 * Пример: * 1 033 *

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

Именованные каналы: C: \ WINDOWS \ system32 \ DBNMPNTW.dll

Многопротокольный (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

Это будет работать лучше всего, когда вы хотите написать собственную сетевую библиотеку. Пожалуйста, смотрите Утилита SQL Server Client Network.

Компромисс производительности является незначительным и незаметным. Лучше придерживаться стандартов и настроить их в файле web.config, так как другие разработчики будут знать, где искать параметры подключения. Аналогично подключению к источнику данных в Java.

4 голосов
/ 07 октября 2009

DBMSSOCN является значением по умолчанию для сетевой библиотеки. Так что, если вы не используете его в строке подключения, он будет использовать значение по умолчанию, которое "DBMSSOCN"

См:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

3 голосов
/ 07 октября 2009

Относительно Network Library=: прямо из источника Microsoft :

SQL Server по умолчанию использует TCP / IP, поэтому указывать его не нужно. Целую статью о строке подключения можно найти здесь .

...