Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Быстрый джойн  [new]
relief
Member

Откуда:
Сообщений: 1197
Можно ли быстро сджойнить 2 таблицы по 120 млн. строк каждая, которые находятся на разных серверах?

1 - mssql 2005
2 - mssql 2008
30 авг 15, 12:16    [18088066]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1698
relief,

что вы подразумеваете под "быстро".
все зависит от множества факторов

в данном случае играет роль:
-удаленность серверов
-пропускная способность сети
-производительность серверов
-структура таблиц

можно довольно быстро получить датасет с результата селекта по таблице из числовых данных на сервере находящимся в метре от другого, и другое дело что то получать с сервера который за тридяветь земель и таблицы в овер 50 стролбцов
31 авг 15, 01:24    [18089423]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
relief
Member

Откуда:
Сообщений: 1197
felix_ff
relief,

что вы подразумеваете под "быстро".
все зависит от множества факторов

в данном случае играет роль:
-удаленность серверов
-пропускная способность сети
-производительность серверов
-структура таблиц

можно довольно быстро получить датасет с результата селекта по таблице из числовых данных на сервере находящимся в метре от другого, и другое дело что то получать с сервера который за тридяветь земель и таблицы в овер 50 стролбцов


Сервера 4000 км друг от друга. Сеть средняя. Столбов около 20, но мне надо не больше 5
Сервер 2008, очень быстрый, второй средне
31 авг 15, 07:44    [18089524]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
relief,

Рекомендую использовать SSIS. Только правильно.

http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html
31 авг 15, 11:06    [18090017]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
invm
Member

Откуда: Москва
Сообщений: 9636
a_voronin
Рекомендую использовать SSIS. Только правильно.
Шо, опять? (с)

Прямо как в старом анекдоте:
+
Китайцы взломали сервер Пентагона, вот как это было:
1. Каждый китаец попробовал один пароль.
2. Каждый второй пароль был "Мао Цзедун"
3. На 74357181-й попытке- сервер согласился, что у него пароль "Мао Цзедун"
Если продолжать долдонить, что SSIS оптимален для мержа таблиц с "лямами" строк, то, в конечном итоге, всем просто надоест доказывать обратное.
31 авг 15, 12:50    [18090533]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
invm,

Я не буду никому ничего долдонить. Вот скрин -- выводы делайте сами.

К сообщению приложен файл. Размер - 91Kb
31 авг 15, 16:22    [18091868]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
churupaha'
Guest
a_voronin
Вот скрин -- выводы делайте сами.


Картинка с другого сайта.

Картинка с другого сайта. тайные возможности
31 авг 15, 16:47    [18092007]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
invm
Member

Откуда: Москва
Сообщений: 9636
a_voronin
Вот скрин -- выводы делайте сами.
Лично я выводы уже сделал давно, - еще в теме, где вас тыкали носом как работает merge join в database engine.
Вы не знаете ни какое соединение таблиц ТС'у требуется, ни в каком виде ему нужен результат, ни сколько строк будет в этом самом результате, ни что для него означает "быстро".
Тем не менее, опять предлагаете свой мерж через SSIS как панацею...

ЗЫ: Что за вывод мы должны сделать из предъявленного скрина, я так и не понял...
31 авг 15, 17:17    [18092182]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Adx
Guest
Непонятно, что делать с результатами этого join

1. Выдать клиенту.
2. Сохранить в файл на одном из серверов.
3. Сохранить результат на одном из серверов.

Что на выходе? Сколько записей? Какой именно join?
Может там одна запись на выходе, причем ее можно получить при заборе данных с одного из серверов, не гоняя потоки данных туда и обратно.
31 авг 15, 17:56    [18092466]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
relief
Member

Откуда:
Сообщений: 1197
Adx
Непонятно, что делать с результатами этого join

1. Выдать клиенту.
2. Сохранить в файл на одном из серверов.
3. Сохранить результат на одном из серверов.

Что на выходе? Сколько записей? Какой именно join?
Может там одна запись на выходе, причем ее можно получить при заборе данных с одного из серверов, не гоняя потоки данных туда и обратно.


1, 2, 3. выдавать не надо, надо запихнуть во временную таблицу для дальнейшей логики. В конце данные сохранятся таблице на одном из серверов

на выходе будет порядка 1 млн записей, джойн будет inner, но хотелось бы закладываться на лефт
1 сен 15, 09:15    [18093843]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8335
relief,

быстро получится только на одном, самом быстром сервере.
1 сен 15, 11:01    [18094226]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Jaffar
Member

Откуда:
Сообщений: 633
если нужно сделать 1 раз - то просто перетащить табличку на быстрый сервер.

или притащить табличку на быстрый сервер и настроить репликацию с источника на быстрый и уже джойнить тут.

но тут могут быть ньюансы типа как интенсивно используется табличка и в ней меняются нужные данные,
как часть нужно делать джойн и т.п.

Судя по размеру - туда достаточно много валиться.

или дайте как я вангану - нужно сравнить данные на 2 копиях базы?

тогда кмк вариант с еженочной репликацией.
1 сен 15, 11:27    [18094329]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Glory
Member

Откуда:
Сообщений: 104760
relief
на выходе будет порядка 1 млн записей

Этот миллион с какого-то одного сервера ?
Или это только миллион соответствий из исходных 120 млн ?
1 сен 15, 11:32    [18094354]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Genniy
Member

Откуда:
Сообщений: 141
a_voronin
invm,

Я не буду никому ничего долдонить. Вот скрин -- выводы делайте сами.


А можно узнать, как Вам удалось получить такую картинку?
1 сен 15, 12:35    [18094755]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
Genniy
a_voronin
invm,

Я не буду никому ничего долдонить. Вот скрин -- выводы делайте сами.


А можно узнать, как Вам удалось получить такую картинку?


В Фотошопе нарисовал. Шутка!

Если вы всё же хотите научится делать JOIN огромных объемов под SSIS, то вот продублирую ссылку.

http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html
1 сен 15, 13:01    [18094931]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
Это мердж 300+ лямов между двумя серверами, к тому же ещё порционный. (за раз до 20 лямов).

Работает хорошо как на полной перегрузке, так и на инкрементальной.
1 сен 15, 13:08    [18094975]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Павел-П
Member

Откуда:
Сообщений: 234
a_voronin
Это мердж 300+ лямов между двумя серверами, к тому же ещё порционный. (за раз до 20 лямов).

Работает хорошо как на полной перегрузке, так и на инкрементальной.


А у вас "хорошо" в картинках меряется. Или в указанных числах обработанных строк?
Просто не совсем понятно, как определить что у Вас все хорошо.
Вот у меня у людей, где на серверах памяти не хватает такие операции к очень ужасным тормозам приводят.
1 сен 15, 20:08    [18096997]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
invm
Member

Откуда: Москва
Сообщений: 9636
Павел-П
А у вас "хорошо" в картинках меряется. Или в указанных числах обработанных строк?
Просто не совсем понятно, как определить что у Вас все хорошо.
Все очень просто.
Г. a_voronin никак не может уразуметь, что:
а) инструмент выбирают под задачу, а не задачу подгоняют под инструмент
б) слияние больших таблиц штатным merge join не требует значительных ресурсов.

Поэтому: слияние таблиц выполнено через Merge Transformation в SSIS - хорошо, все остальные варианты - плохо "по определению".
1 сен 15, 20:41    [18097079]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
relief
Member

Откуда:
Сообщений: 1197
Glory
relief
на выходе будет порядка 1 млн записей

Этот миллион с какого-то одного сервера ?
Или это только миллион соответствий из исходных 120 млн ?


Миллион соотвествий между 2 таблицами по 120 млн. 5 столбцов берем из одной таблицы, 5 из другой
1 сен 15, 21:03    [18097146]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
a_voronin
Genniy
пропущено...


А можно узнать, как Вам удалось получить такую картинку?


В Фотошопе нарисовал. Шутка!

Если вы всё же хотите научится делать JOIN огромных объемов под SSIS, то вот продублирую ссылку.

http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html
По ссылке - очередная индусячая лажа, которая даже работать не будет. Мало сказать SSIS-у, что данные сортированы, их вообще то надо еще и реально упорядочить с помощью ORDER BY.
2 сен 15, 19:12    [18101280]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
до не давних пор был один типо консультант Когносятник<>Juriii, теперь MS BI <> a_voronin
2 сен 15, 20:31    [18101509]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
Mind
a_voronin
пропущено...


В Фотошопе нарисовал. Шутка!

Если вы всё же хотите научится делать JOIN огромных объемов под SSIS, то вот продублирую ссылку.

http://guru-msbi.blogspot.ru/2013/07/using-merge-join-without-sort.html
По ссылке - очередная индусячая лажа, которая даже работать не будет. Мало сказать SSIS-у, что данные сортированы, их вообще то надо еще и реально упорядочить с помощью ORDER BY.


В кривых руках не будет.
2 сен 15, 23:52    [18101951]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Владислав Колосов
relief,

быстро получится только на одном, самом быстром сервере.
Быстрее получится на том сервере, у которого больше записей из джоина.
1. Тянем с удалённого (того, на котором меньше записей, ну или который слабее) сервера все ключики по джоину. Только ключи.
2. Джоиним локально.
3. Дочитываем с удалённого нужные поля по ключу.
3 сен 15, 23:44    [18106010]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Makar4ik
Владислав Колосов
relief,

быстро получится только на одном, самом быстром сервере.
3. Дочитываем с удалённого нужные поля по ключу.
Вот этот пункт может оказаться весьма геморным и медленным. Хотелось бы посмотреть на вашу реализацию.
4 сен 15, 00:51    [18106136]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый джойн  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Mind
Makar4ik
пропущено...
3. Дочитываем с удалённого нужные поля по ключу.
Вот этот пункт может оказаться весьма геморным и медленным. Хотелось бы посмотреть на вашу реализацию.
а нашей - нет.
а как вы видите решение проблемы?

Тут только 2 варианта решения пункта 3:
1) дочитываем поля к себе.
2) передаём на удалёнку ключики после джоина, а потом весь результат читаем уже оттуда. Но это спорно, ибо тогда нахрена мы оттуда тащили эти ключи?

Другие варианты видны кому-нибудь?
4 сен 15, 02:28    [18106240]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить