2016-06-03 2 views
0

Меня спросили в интервью, почему данные нужно сортировать для слияния и объединения объединения? Я знаю, что мы можем использовать объединение и объединение без преобразования сортировки, сортируя данные в источнике и устанавливая некоторые свойства. Но все же данные должны быть отсортированы, пожалуйста, скажите мне, почему это обязательно?В SSIS, почему нужно сортировать вход для объединения merge/merge?

+0

Алгоритм слияния требует сортировки данных. Это предположение, которое делает алгоритм, и делает его очень эффективным алгоритмом. Альтернативно, алгоритм объединения вложенных циклов не требует, чтобы данные сортировались. Прочитайте, как работают алгоритмы объединения объединений и вложенных циклов, и вы можете понять лучше. Другими словами, вы можете использовать вложенные циклы join _or_ объединение слияния на отсортированные данные, но объединение слияния будет быстрее. –

ответ

0

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

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

Теперь соберите эти колоды по костюмам и ценности и попробуйте те же упражнения, и теперь вы должны понять, как сортировка помогает. Процесс сортировки требует времени и ресурсов, но намного меньше, чем сопоставление отсортированных списков, и разница растет экспоненциально по мере увеличения количества записей (карт) в миллионы.