Сжатие соединения Oracle? - PullRequest
       24

Сжатие соединения Oracle?

9 голосов
/ 23 декабря 2009

У меня есть приложение, которое использует JDBC для подключения к Oracle 11g. К сожалению, машина, на которой работает мое приложение, и машина Oracle подключены через соединение с низкой пропускной способностью. Я не анализировал соединение, но я уверен, что данные, передаваемые через соединение, не сжаты. Для моего приложения я больше обеспокоен пропускной способностью, чем задержкой.

Можно ли как-то сказать драйверу JDBC и Oracle сжимать данные, проходящие через соединение? Google предлагает много ответов для сжатия файлов данных, но я не смог найти ничего о сжатии сетевых протоколов.

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

Ответы [ 5 ]

10 голосов
/ 23 декабря 2009

Я не знаю подробностей о тонких и OCI драйверах Oracle. Но вы могли бы использовать SSH туннели для достижения сжатия .

  1. Итак, на вашем компьютере Oracle вы устанавливаете демон SSH. Если ваш сервер Oracle работает под RedHat Linux, все готово
  2. На вашем клиентском компьютере (на котором размещается ваше приложение, которое подключается через JDBC) установите соединение SSH, включив сжатый туннель. Вы можете использовать командную строку SSH или Putty (если вы находитесь под windows), чтобы сделать это.

Установите соединение примерно так:

$ ssh -L1521:localhost:1521 username@oracleserver_ip

Затем в своем приложении используйте localhost: 1521 в качестве адреса Oracle.

5 голосов
/ 24 декабря 2009

Чтобы прямо ответить на вопрос, драйверы (тонкие или OCI) не имеют такого механизма сжатия. И так как отправленные данные, вероятно, в каком-то необычном двоичном формате, я не уверен, что они будут хорошо сжиматься по SSL. Нужно использовать какой-то другой механизм для повышения производительности сети.

5 голосов
/ 23 декабря 2009

По моему опыту, высокая задержка снижает производительность при использовании драйверов Oracle JDBC гораздо больше, чем низкая пропускная способность. (по крайней мере, в приложении, над которым я работаю). Вы говорите, что не беспокоитесь о задержке, но не могли бы вы дать оценку задержке в вашей среде с низкой пропускной способностью?

Насколько большими являются данные, которые вы отправляете? Есть ли столбцы BLOB? Существуют ли другие технологии, такие как пул соединений или Hibernate? Есть много потенциальных факторов, не только если ваши данные сжимаются.

Вы делали какую-либо эмуляцию WAN, чтобы попытаться изолировать то, что ухудшает вашу производительность больше всего? WANem довольно прост в настройке.

Я потратил недели на решение этой проблемы, и задержка в 100-200 мс нанесла нам гораздо больший ущерб, чем ограничение пропускной способности 1 Мбит. Надеюсь, вы в другой лодке - сжатие легче решить.

3 голосов
/ 12 марта 2018

Просто обновление.

Соединения Oracle JDBC в 12.2 теперь имеют функцию сжатия, как отказано в этом сообщении: http://www.oracle.com/technetwork/topics/jdbc-faq-090281.html#0000_00

2 голосов
/ 27 марта 2018

См. Руководство разработчика Oracle JDBC для включения сжатия сети. Обратите внимание, что это функция Oracle12c Release 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...