オブジェクトのさまざまな属性を経時的に追跡するテーブルを作成しました。
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 のデータがない場合は、新しいレコードを作成します。
私の質問は、これを行う最も効率的な方法は何ですか?
各レコードを処理し、比較を行い、必要に応じてテーブルを更新するスクリプトを作成することはできますが、これはインテリジェントなソリューションではなく、力ずくで行う方法だと思いました。
これはカーソルを使用するのに適した場所でしょうか?