Можно ли сжимать сетевой трафик SQL Server? - PullRequest
15 голосов
/ 16 марта 2010

У меня есть клиент .NET, которому необходимо подключиться к удаленному серверу SQL через глобальную сеть. Можно ли сжимать трафик SQL между клиентом и сервером?

Я использую .NET 3.5 и SQL Server 2005 и выше.

Ответы [ 8 ]

8 голосов
/ 16 марта 2010

Глядя на connectionstrings.com здесь для SQL Server 2008, поставщики баз данных не имеют какой-либо схемы сжатия ... Возможно, вам потребуется написать оболочку на другом порту, который сжимает Данные, используя внешний интерфейс, отправляют данные через этот порт, оттуда сжимают их, отправляют на удаленную конечную точку, распаковывают и перенаправляют на реальный порт tcp / ip, где находится сервер.

Обычно SQL Server находится на порте 1433 ...

Поскольку картинка стоит тысячи слов ....

+--------+                                             +--------+
| CLIENT |                                             | SERVER |
+--------+                                             +--------+
  Port 1234                                          Port 1433 <+--+
     |                                                             |
     |                                                             |
     +={Module}=    <=>    TX/RX    <=>   ={Module}=  -+-----------+

Модуль будет сидеть на обоих концах, сжимая / распаковывая ...

Честно говоря, звучит так, как будто потребуется работа, поскольку дыры в брандмауэре должны быть пробиты, чтобы позволить сжатым данным входить и выходить ... добавление NAT / SNAT может усложнить ситуацию ...

Посмотрите на эту статью, которую я написал на Codeproject , этот код действует как перенаправитель трафика и может быть легко изменен для использования схемы сжатия / распаковки ..

7 голосов
/ 17 января 2011

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

Самым простым решением для решения обеих проблем является открытие VPN-туннеля с включенным шифрованием и сжатием. Простой Microsoft PPTP решает обе проблемы и прост в настройке.

2 голосов
/ 19 августа 2011

Я знаю, что этому вопросу больше года, но я нашел его, поэтому подумал, что поделюсь тем, что нашел. Существует это (довольно дорогое) программное обеспечение, которое сжимает трафик SQL-сервера. Сейчас я тестирую его на одном из моих клиентов, он работает очень хорошо, достигая в среднем 60% коэффициента сжатия.

http://www.nitrosphere.net/store/nitroaccelerator

Он также совместим с клиентами, на которых эта служба не установлена.

2 голосов
/ 16 марта 2010

Я не думаю, что в соединении с сервером SQL реализовано сжатие - если вам нужно сжимать данные, вы должны использовать веб-службу и HTTP-сжатие при взаимодействии со службой.

1 голос
/ 11 января 2017

В настоящее время мы также тестируем программное обеспечение NitroSphere в нашей сети WAN, и у нас коэффициент сжатия 73% и значительное улучшение скорости.

Мое мнение таково, что программное обеспечение на самом деле дешевле по сравнению с лицензированием SQL Server, устройствами Riverbed и WLAN-соединениями MPLS. Так что наверняка посмотрите, если у вас есть проблемы с пропускной способностью. Он также поддерживает шифрование, но мы не планируем его использовать, поскольку все останется во внутренней сети MPLS.

1 голос
/ 16 сентября 2016

Если вы хотите создать туннель со сжатием и шифрованием (может быть отключен для сохранения процесса) без необходимости создания vpn, а также является кросс-платформой для вашего удовольствия, здесь у вас есть тот, который функционирует как клиентский сервер и использует прослушивание Порты all life также функционируют как брандмауэр как туннель, чтобы иметь один порт в качестве канала для управления удаленными соединениями и портами), этот инструмент существует 10 лет назад: http://www.winton.org.uk/zebedee/

Я провожу эксперименты по сжатию (на уровне 3) незашифрованного соединения SQL Server, и я получаю хорошие соотношения в зависимости от уровня сжатия, позволяя детям проводить большие запросы возможных данных для ограниченного канала ... обновлено в: https://sourceforge.net/projects/zebedee/

1 голос
/ 16 марта 2010

Проверьте это: http://www.toonel.net/tcpany.htm

Кстати, я также думаю, что сам SQL Server не может сжимать трафик, но с сетевым уровнем в приложении - вы можете выполнить сжатие там.

1 голос
/ 16 марта 2010

В этом случае я предлагаю использовать веб-службы или WCF для отправки данных вместо использования подключения к базе данных.

...