Поделиться через


Выбор сетевого протокола

Для подключения к SQL Server компоненту Database Engine необходимо включить сетевой протокол. Microsoft SQL Server может одновременно обслуживать запросы по нескольким протоколам. Клиенты подключаются к SQL Server по одному протоколу. Если клиентская программа не знает, какой протокол SQL Server прослушивает, настройте клиент для последовательного выполнения нескольких протоколов. Используйте диспетчер конфигурации SQL Server для включения, отключения и настройки сетевых протоколов.

Общая память

Общая память является простейшим протоколом и не имеет настраиваемых параметров. Так как клиенты, использующие протокол общей памяти, могут подключаться только к экземпляру SQL Server, работающему на том же компьютере, это не полезно для большинства действий базы данных. Используйте протокол общей памяти, чтобы устранить неполадки, если есть вероятность того, что другие протоколы настроены некорректно.

Примечание

Клиенты, использующие компоненты MDAC версии 2.8 или более ранней, не могут использовать протокол общей памяти. Если происходит попытка связи через протокол общей памяти, они автоматически переключаются на протокол именованных каналов.

TCP/IP

TCP/IP является распространенным протоколом, широко использующимся в Интернете. Он обеспечивает связь между сетями, в которые входят компьютеры с разнообразной аппаратной архитектурой и различными операционными системами. В TCP/IP включены стандарты для маршрутизации сетевого трафика и расширенные средства безопасности. На сегодняшний день это самый популярный протокол, использующийся в бизнесе. Настройка компьютера для использования TCP/IP может быть сложной, но большинство подключенных к сети компьютеров уже настроены необходимым образом. Сведения о настройке параметров TCP/IP, которые не предоставляются в диспетчер конфигурации SQL Server, см. в документации по Microsoft Windows.

Именованные каналы

Именованные каналы — это протокол, разработанный для локальных сетей. Для передачи данных от одного процесса к другому используется часть памяти, поэтому вывод одного процесса является вводом другого. Второй процесс может быть как локальным (находиться на том же компьютере, что и первый), так и удаленным (находиться на подключенном к сети компьютере).

Именованные каналы и сокеты TCP/IP

В скоростных локальных сетях производительность сокетов протокола (TCP/IP) и клиентов именованных каналов является сопоставимой. Однако в более медленных сетях, таких как глобальные сети или сети с коммутируемыми соединениями, разница в производительности между сокетами TCP/IP и клиентами именованных каналов становится заметной. Это происходит из-за того, что механизмы межпроцессного взаимодействия (IPC) связываются между равноправными узлами различными способами.

В случае именованных каналов сетевые соединения обычно более интерактивны. Равноправный узел не посылает данные до тех пор, пока другой узел не запросит его при помощи команды чтения. Команда чтения перед началом считывания данных обычно запускает последовательность сообщений просмотра именованных каналов. Этот процесс может отнимать много ресурсов в медленных сетях и приводить к избыточному сетевому трафику, что в свою очередь повлияет на работу других сетевых клиентов.

Также важно выяснить, идет речь о локальных каналах или о сетевых каналах. Если серверное приложение выполняется локально на компьютере, где выполняется экземпляр SQL Server, можно использовать локальный протокол именованных каналов. Локальные именованные каналы работают в режиме ядра и обладают очень высокой скоростью.

Для сокетов TCP/IP передача данных осуществляется более просто и сопряжена с меньшими затратами. Передача данных также использует преимущества механизмов улучшения производительности сокетов TCP/IP, такие как многооконность, отложенные подтверждения и так далее. Это может быть весьма полезно в медленных сетях. В зависимости от типа приложений, достигнутое увеличение производительности может оказаться значительным.

Сокеты TCP/IP также поддерживают очередь незавершенных заданий. Это может обеспечить ограниченный эффект сглаживания по сравнению с именованными каналами, что может привести к ошибкам занятости канала при попытке подключения к SQL Server.

Использование протокола TCP/IP предпочтительно в медленных локальных сетях, глобальных сетях и в сетях с коммутируемыми соединениями, а именованные каналы предоставляют более широкие функциональные возможности, повышенную простоту использования и большее число параметров конфигурации, когда скорость сети не является критичным параметром.

Включение протокола

Для работы протокол должен быть включен и на сервере, и на клиенте. Сервер может одновременно прослушивать запросы по всем включенным протоколам. Клиентские компьютеры могут выбрать один из них или попробовать протоколы в порядке, указанном в диспетчер конфигурации SQL Server.

Краткое руководство по настройке протоколов и подключению к ядру СУБД см. в статье Руководство по начало работы с компонентом Database Engine.