Я создал таблицу, которая отслеживает различные атрибуты объектов с течением времени.
Id | Attribute1 | Attribute2 | Attribute3 | StartDate | EndDate
------------------------------------------------------------------
01 | 100 | Null | Null | 2004-02-03 | 2006-04-30
01 | 100 | Null | D | 2006-05-01 | 2010-11-06
01 | 150 | Null | D | 2010-11-07 | Null
02 | 700 | 5600 | Null | 1998-09-27 | 2002-01-27
Новые данные (~10 тысяч записей) поступают каждый день. Я хочу сравнить каждую запись с текущими данными для этого идентификатора, а затем:
а) Ничего не делать, если атрибуты совпадают. б) Если атрибуты отличаются, обновите текущую запись, чтобы EndDate была текущей датой, и создайте новую запись с новыми атрибутами. c) Создайте новую запись, если для этого идентификатора нет данных.
Мой вопрос в том, какой самый эффективный способ сделать это?
Я могу написать скрипт, который просматривает каждую запись, сравнивает и обновляет таблицу по мере необходимости, но мне показалось, что это грубая сила, а не разумное решение.
Будет ли это хорошим местом для использования курсора?