У меня есть удаленный сайт с хорошим подключением, с которого я дважды в день отправляю снимки определенных таблиц. Репликация моментальных снимков - единственный метод, который я могу использовать в зависимости от ограничений схемы базового приложения.
Снимок публикуется по пути UNC и FTP, и его размер составляет около 6 МБ, поэтому он довольно мал. Я не на 100%, используется ли FTP или UNC на самом деле. С момента сжатия снимка в файл snapshot.cab до того момента, когда монитор репликации покажет мне первый из применяемых сценариев, проходит около 5 минут, поэтому я предполагаю, что разрыв - это время передачи. Я думаю, что это UNC / SMB, учитывая, что копирование такого количества данных через наше 3-мегабайтное соединение через FTP занимает гораздо меньше времени.
Для загрузки снимка требуется еще около 25 минут, что кажется большим временем для небольшого количества данных. Много строк (в некоторых таблицах 100 тыс. Строк), но фактический объем данных довольно мал.
Абонент использует SQLExpress 2005 на ProLiant с тактовой частотой 2,8 ГГц с 3 ГБ оперативной памяти, которая в остальном не занята. Я еще не проводил обширного профилирования, чтобы увидеть, есть ли конфликт за диск или что еще может происходить.
Мне интересно, какой здесь вероятный ограничитель скорости и есть ли способ вообще это ускорить. 30 минут кажется долгим, чтобы скопировать и загрузить 6 МБ сжатых данных.
Поскольку у вас есть SQL Express на удаленной стороне, ваши возможности довольно ограничены, поскольку вы можете сделать только принудительную подписку.
Репликация работает так, что данные передаются по протоколу BCP в двоичный файл. Когда агент репликации определяет, что моментальный снимок сделан, он использует BCP для загрузки данных по сети в подписчика. BCP по сети - не самый быстрый процесс.