Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизировать скрипт синхронизации таблиц / 5 сообщений из 5, страница 1 из 1
12.06.2018, 20:53
    #39659853
JMLabs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать скрипт синхронизации таблиц
Помогите пожалуйста решить такую задачу. Есть 2 сервера БД, один - продакшн, другой для подготовки отчетов и аналитики. Нужно время от времени синхронизировать данные одной из таблиц из БД продакшн в БД аналитики. К сожалению репликацию сделать не могу, т.к. БД продакшн (publisher) закрыта извне. Для решения задачи у меня написан скрипт который "смотрит" каких записей нет в таблице аналитической БД по сравнению с БД продакшн и инсертит их. Суть скрипта такая:

Код: sql
1.
2.
3.
4.
5.
6.
7.
INSERT INTO receiver
  SELECT
    *
  FROM source
  LEFT JOIN receiver
    ON receiver.id = source.id
  WHERE receiver.id IS NULL



Однако с постом числа строк в синхронизируемых таблицах это скрипт все медленнее и медленнее работает. На таблице в полмиллиона строк вообще умирает. Какие могут быть идеи для оптимизации синхронизации?
...
Рейтинг: 0 / 0
12.06.2018, 21:36
    #39659859
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать скрипт синхронизации таблиц
естественно не будет работать, т.к. вы джойните таблицы на разных серверах,

есть много вариантов решения - от допиливания источника, чтобы там было логирование изменений, до покупки специализированного ПО, которое читает лог и транслирует изменения,

подозреваю, что в вашем случае доступно такое - тащить последние N месяцев во времянку и потом джойнить, а скажем по выходным тащить всю таблицу в ту же времянку и джойнить ее
...
Рейтинг: 0 / 0
12.06.2018, 21:41
    #39659861
KRS544
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать скрипт синхронизации таблиц
Еще наверняка и через Linked Server?
Дешевле наверняка будет целиком закачивать каждый раз.
Попросите добавить на продакш поле Timestamp
(что не поможет отслеживать удаленные записи, но у вас и так этого нет)
...
Рейтинг: 0 / 0
12.06.2018, 22:43
    #39659885
JMLabs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать скрипт синхронизации таблиц
Да, второй сервер прилинкован. Поле даты есть, я понимаю идею - взять в сравнение только последнюю неделю например, но что делать если вдруг не отработает скрипт, получится дырка в данных
...
Рейтинг: 0 / 0
12.06.2018, 23:04
    #39659896
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать скрипт синхронизации таблиц
JMLabsПоле даты есть, я понимаю идею - взять в сравнение только последнюю неделю напримерНе последнюю неделю, а с того момента, до которого в последний раз вставились данные. Запоминая этот момент при работе скрипта.
Тогда логически скрипт будет работать так же, как ваш, но быстрее.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизировать скрипт синхронизации таблиц / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]