Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
relief Member Откуда: Сообщений: 1197 |
Можно ли быстро сджойнить 2 таблицы по 120 млн. строк каждая, которые находятся на разных серверах? 1 - mssql 2005 2 - mssql 2008 |
30 авг 15, 12:16 [18088066] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1698 |
relief, что вы подразумеваете под "быстро". все зависит от множества факторов в данном случае играет роль: -удаленность серверов -пропускная способность сети -производительность серверов -структура таблиц можно довольно быстро получить датасет с результата селекта по таблице из числовых данных на сервере находящимся в метре от другого, и другое дело что то получать с сервера который за тридяветь земель и таблицы в овер 50 стролбцов |
31 авг 15, 01:24 [18089423] Ответить | Цитировать Сообщить модератору |
relief Member Откуда: Сообщений: 1197 |
Сервера 4000 км друг от друга. Сеть средняя. Столбов около 20, но мне надо не больше 5 Сервер 2008, очень быстрый, второй средне |
||
31 авг 15, 07:44 [18089524] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
relief, Рекомендую использовать SSIS. Только правильно. http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html |
31 авг 15, 11:06 [18090017] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
![]() Прямо как в старом анекдоте:
![]() |
|||
31 авг 15, 12:50 [18090533] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
invm, Я не буду никому ничего долдонить. Вот скрин -- выводы делайте сами. К сообщению приложен файл. Размер - 91Kb |
31 авг 15, 16:22 [18091868] Ответить | Цитировать Сообщить модератору |
churupaha'
Guest |
![]() ![]() |
||
31 авг 15, 16:47 [18092007] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
Вы не знаете ни какое соединение таблиц ТС'у требуется, ни в каком виде ему нужен результат, ни сколько строк будет в этом самом результате, ни что для него означает "быстро". Тем не менее, опять предлагаете свой мерж через SSIS как панацею... ЗЫ: Что за вывод мы должны сделать из предъявленного скрина, я так и не понял... |
||
31 авг 15, 17:17 [18092182] Ответить | Цитировать Сообщить модератору |
Adx
Guest |
Непонятно, что делать с результатами этого join 1. Выдать клиенту. 2. Сохранить в файл на одном из серверов. 3. Сохранить результат на одном из серверов. Что на выходе? Сколько записей? Какой именно join? Может там одна запись на выходе, причем ее можно получить при заборе данных с одного из серверов, не гоняя потоки данных туда и обратно. |
31 авг 15, 17:56 [18092466] Ответить | Цитировать Сообщить модератору |
relief Member Откуда: Сообщений: 1197 |
1, 2, 3. выдавать не надо, надо запихнуть во временную таблицу для дальнейшей логики. В конце данные сохранятся таблице на одном из серверов на выходе будет порядка 1 млн записей, джойн будет inner, но хотелось бы закладываться на лефт |
||
1 сен 15, 09:15 [18093843] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8335 |
relief, быстро получится только на одном, самом быстром сервере. |
1 сен 15, 11:01 [18094226] Ответить | Цитировать Сообщить модератору |
Jaffar Member Откуда: Сообщений: 633 |
если нужно сделать 1 раз - то просто перетащить табличку на быстрый сервер. или притащить табличку на быстрый сервер и настроить репликацию с источника на быстрый и уже джойнить тут. но тут могут быть ньюансы типа как интенсивно используется табличка и в ней меняются нужные данные, как часть нужно делать джойн и т.п. Судя по размеру - туда достаточно много валиться. или дайте как я вангану - нужно сравнить данные на 2 копиях базы? тогда кмк вариант с еженочной репликацией. |
1 сен 15, 11:27 [18094329] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Этот миллион с какого-то одного сервера ? Или это только миллион соответствий из исходных 120 млн ? |
||
1 сен 15, 11:32 [18094354] Ответить | Цитировать Сообщить модератору |
Genniy Member Откуда: Сообщений: 141 |
А можно узнать, как Вам удалось получить такую картинку? |
||
1 сен 15, 12:35 [18094755] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
В Фотошопе нарисовал. Шутка! Если вы всё же хотите научится делать JOIN огромных объемов под SSIS, то вот продублирую ссылку. http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html |
||||
1 сен 15, 13:01 [18094931] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
Это мердж 300+ лямов между двумя серверами, к тому же ещё порционный. (за раз до 20 лямов). Работает хорошо как на полной перегрузке, так и на инкрементальной. |
1 сен 15, 13:08 [18094975] Ответить | Цитировать Сообщить модератору |
Павел-П Member Откуда: Сообщений: 234 |
А у вас "хорошо" в картинках меряется. Или в указанных числах обработанных строк? Просто не совсем понятно, как определить что у Вас все хорошо. Вот у меня у людей, где на серверах памяти не хватает такие операции к очень ужасным тормозам приводят. |
||
1 сен 15, 20:08 [18096997] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
Г. a_voronin никак не может уразуметь, что: а) инструмент выбирают под задачу, а не задачу подгоняют под инструмент б) слияние больших таблиц штатным merge join не требует значительных ресурсов. Поэтому: слияние таблиц выполнено через Merge Transformation в SSIS - хорошо, все остальные варианты - плохо "по определению". |
||
1 сен 15, 20:41 [18097079] Ответить | Цитировать Сообщить модератору |
relief Member Откуда: Сообщений: 1197 |
Миллион соотвествий между 2 таблицами по 120 млн. 5 столбцов берем из одной таблицы, 5 из другой |
||||
1 сен 15, 21:03 [18097146] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||||
2 сен 15, 19:12 [18101280] Ответить | Цитировать Сообщить модератору |
babona Member [заблокирован] Откуда: Батуринск Сообщений: 1816 |
до не давних пор был один типо консультант Когнос |
2 сен 15, 20:31 [18101509] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
В кривых руках не будет. |
||||
2 сен 15, 23:52 [18101951] Ответить | Цитировать Сообщить модератору |
Makar4ik Member Откуда: Когда-то были Лужки, а теперь Бордюр-Сити. Сообщений: 2680 |
1. Тянем с удалённого (того, на котором меньше записей, ну или который слабее) сервера все ключики по джоину. Только ключи. 2. Джоиним локально. 3. Дочитываем с удалённого нужные поля по ключу. |
||
3 сен 15, 23:44 [18106010] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||||
4 сен 15, 00:51 [18106136] Ответить | Цитировать Сообщить модератору |
Makar4ik Member Откуда: Когда-то были Лужки, а теперь Бордюр-Сити. Сообщений: 2680 |
а как вы видите решение проблемы? Тут только 2 варианта решения пункта 3: 1) дочитываем поля к себе. 2) передаём на удалёнку ключики после джоина, а потом весь результат читаем уже оттуда. Но это спорно, ибо тогда нахрена мы оттуда тащили эти ключи? Другие варианты видны кому-нибудь? |
||||
4 сен 15, 02:28 [18106240] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |