Сравнение данных из двух баз данных


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

Мой вопрос является ли, с точки зрения производительности, наиболее эффективным способом сравнения полей из обеих таблиц? Должен ли я просто сравнить их так:

T1.Name = t2.Name и Т1.Фамилия = t2.Фамилия и Т1.DOB = t2.ДОБ и Т1.Телефон = Т2.Телефон

Или мне следует вычислить хэш этих полей, а затем сравнить хэши? Или может что-то еще?

1 2

1 ответ:

Звучит как идеальное время для использования INTERSECT

Http://msdn.microsoft.com/en-us/library/ms188055.aspx

Однако если у вас есть дубликаты пользователей и вы хотите их идентифицировать, придерживайтесь внутреннего соединения (INTERSECT возвращает только отдельные совпадения)