Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ГОСТЬ911
Guest |
Добрый день. Есть База.ТаблицаИсточник, а также СвязанныйСервер.БазаЛогов.ТаблицаЦель. В Источнике 100500 полей, в Цели значительно меньше. Внезапно, понадобилось в ТаблицаЦель добавить новое поле, и проапдейтить его значениями из ТаблицаИсточник. В обеих таблицах 10 миллионов записей. Как сделать эту работу быстро? Апдейт типа UPDATE T SET Field ='A' FROM LinkedServer.LogBase.TargetTable T WHERE T.ID = 1висит минутами, а там таких 10 лямов. |
11 июл 17, 11:54 [20632563] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
Перелить два поля из ТаблицаИсточник в СвязанныйСервер.БазаЛогов в отдельную таблицу и выполнить апдейт там.
Сообщение было отредактировано: 11 июл 17, 11:57 |
11 июл 17, 11:57 [20632579] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
А чо, insert как-то радикально отличается от update? |
||
11 июл 17, 12:34 [20632778] Ответить | Цитировать Сообщить модератору |
ГОСТЬ911
Guest |
Наверное тем, что не надо делать джойн на таблицы разных серверов? |
11 июл 17, 12:35 [20632784] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Поднимите мне веки! Где ты джойн узрел? |
||
11 июл 17, 12:40 [20632822] Ответить | Цитировать Сообщить модератору |
ГОСТЬ911
Guest |
В постановке задачиUPDATE T FROM LinkedServer.LogBaseTargetTable T JOIN CurrentServer.MainBase.SourceTable S ON S.Id = T.Id |
11 июл 17, 12:46 [20632844] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Ээээ, болезный, телепатией я не страдаю. |
||||
11 июл 17, 12:48 [20632858] Ответить | Цитировать Сообщить модератору |
ГОСТЬ911
Guest |
Гавриленко Сергей Алексеевич, спасибо, совет помог. |
11 июл 17, 14:50 [20633586] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |