시간이 지남에 따라 오브젝트의 다양한 속성을 추적하는 테이블을 만들었습니다.길이 인코딩 데이터를 실행하는 가장 좋은 방법
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
매일 새로운 데이터 (수십만 개 레코드)가 들어옵니다. 내가하고 싶은 일은 각각의 레코드를 그 id에 대한 현재 데이터와 비교 한 다음 :
a) 속성이 일치하면 아무 작업도하지 않습니다. b) 특성이 다른 경우 EndDate가 현재 날짜가되도록 현재 레코드를 업데이트하고 새 특성으로 새 레코드를 만듭니다. c) 해당 ID에 대한 데이터가없는 경우 새 레코드를 만듭니다.
제 질문은 가장 효율적인 방법은 무엇입니까?
필자는 각 레코드를 비교하고 적절한 테이블을 업데이트하는 스크립트를 작성할 수 있지만 지능형 솔루션이 아닌 무차별 적으로 쓰러졌습니다.
커서를 사용하는 것이 좋습니까?