Added, Removed, Modified record sets
От: SergeyLa  
Дата: 22.01.08 08:15
Оценка:
Есть скажем две таблицы (с одинаковыми полями) в базе данных. Среди множества полей выделим подмножество ключевых. 2 записи совпадают, если у них совпадают ключевые поля. Задача — вычислить множество записей, которые есть в первой, но нет во второй; есть во второй, но нет в первой; есть и в первой и во второй, но хотя бы по одному ключевому полю есть различия.

Данных много > 10^6 записей.
Re: Added, Removed, Modified record sets
От: SergeyLa  
Дата: 22.01.08 09:16
Оценка:
Здравствуйте, SergeyLa, Вы писали:

SL>Есть скажем две таблицы (с одинаковыми полями) в базе данных. Среди множества полей выделим подмножество ключевых. 2 записи совпадают, если у них совпадают ключевые поля. Задача — вычислить множество записей, которые есть в первой, но нет во второй; есть во второй, но нет в первой; есть и в первой и во второй, но хотя бы по одному ключевому полю есть различия.


SL>Данных много > 10^6 записей.


В моей задаче 2 dbf файла, и решения интересуют скорее прикладные. Так что подойдут всякие приемы вроде записывания во временный файл и т.д.
Re[2]: Added, Removed, Modified record sets
От: Leonidze  
Дата: 23.01.08 16:48
Оценка:
Здравствуйте, SergeyLa, Вы писали:

SL>Здравствуйте, SergeyLa, Вы писали:


SL>>Есть скажем две таблицы (с одинаковыми полями) в базе данных. Среди множества полей выделим подмножество ключевых. 2 записи совпадают, если у них совпадают ключевые поля. Задача — вычислить множество записей, которые есть в первой, но нет во второй; есть во второй, но нет в первой; есть и в первой и во второй, но хотя бы по одному ключевому полю есть различия.


SL>>Данных много > 10^6 записей.


SL>В моей задаче 2 dbf файла, и решения интересуют скорее прикладные. Так что подойдут всякие приемы вроде записывания во временный файл и т.д.


а насколько быстро это должно работать? критично?
например отсортировать оба и сравнить "а-ля сортировка слиянием"? — вариант "в лоб".
чуть сложнее — порезать на куски меньшего размера, сравнить попарно. можно время выиграть не сильно усложнив.
Re: Added, Removed, Modified record sets
От: Осака Вестингауз  
Дата: 23.01.08 21:56
Оценка:
Здравствуйте, SergeyLa, Вы писали:

SL>Есть скажем две таблицы (с одинаковыми полями) в базе данных. Среди множества полей выделим подмножество ключевых. 2 записи совпадают, если у них совпадают ключевые поля. Задача — вычислить множество записей, которые есть в первой, но нет во второй; есть во второй, но нет в первой; есть и в первой и во второй, но хотя бы по одному ключевому полю есть различия.


SL>Данных много > 10^6 записей.


сложить в sql server
Re: Added, Removed, Modified record sets
От: wildwind Россия  
Дата: 24.01.08 14:36
Оценка: :)
Здравствуйте, SergeyLa, Вы писали:

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


Это уже рекурсия. Формулируй по-другому.


А вообще эту задачу (для текстовых файлов) решает пара стандартных *nix утилит: sort и uniq. Для Win тоже есть порты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.