Назад | Перейти на главную страницу

Есть ли снижение производительности при использовании внешнего URL-адреса вместо внутреннего IP-адреса для адресации сервера в SSIS?

Я использую пакеты служб интеграции SQL Server (SSIS) в агенте SQL Server каждый день. Я следил за производительностью пакетов и видел много сетевой активности в Resource Monitor. Я загружаю данные из локального экземпляра SQL Server в другой локальный экземпляр SQL Server. Однако я использую полные URL-адреса для адресации серверов, потому что это значительно упрощает разработку в автономном режиме. Итак, вместо 10.1.2.X я использую data.mydomain.com\instance.

Я снижаю производительность, используя внешний URL-адрес вместо того, чтобы ссылаться на базу данных как 10.1.2.X\instance или localhost\instance? Кроме того, почему я вижу такой высокий сетевой трафик во время работы этих пакетов? На самом деле нет ничего, что должно проходить по сети.

Вот как мой сетевой трафик выглядит в Resource Monitor, когда задание выполняет пакет.

Очевидно, что по сети перемещается много трафика, но выполняемое задание только читает и записывает данные с одной и той же машины.

Спасибо!

Если оба экземпляра находятся в одной системе, единственный «удар» производительности, который вы увидите при использовании полного доменного имени, - это поиск DNS. Предполагая, что ваш DNS-сервер (или файл hosts) остается доступным, влияние этого на производительность будет незначительным.

IP будет использовать интерфейс обратной петли системы при доступе к этим полным доменным именам, поэтому внешняя сеть фактически не будет участвовать в трафике, предназначенном для localhost (и любых URI, которые там попадают).

Предполагая, что эти «внешние URL-адреса» фактически разрешаются в локальные адреса, и снова предполагая, что у вас нет проблем с DNS, нет, это действительно не должно иметь никакого значения.

Что же вы видите по поводу высокой сетевой активности?

РЕДАКТИРОВАТЬ

Я делаю здесь дикий удар (поскольку я очень мало знаю SSIS и внутреннюю работу MS SQL в целом), но, возможно, процесс DTEXEC.EXE работает как СЕТЕВАЯ СЛУЖБА и / или использует адаптер обратной петли для локальной обработки?

Вы всегда можете проверить, является ли это реальным сетевым трафиком или нет, запустив захват с помощью Wireshark или используя простой монитор пропускной способности, например Монитор пропускной способности NetWorx (есть портативная версия для загрузки; установка не требуется, бесплатное ПО) на сервере SQL. На самом деле вы, вероятно, могли бы запустить permon и настроить некоторые сетевые счетчики, но если мой удар в темноте правильный, это может показать те же результаты.