特定のファイルがシステムによってチェックされるときに通過するステータスを追跡するテーブルがあります。次のようになります:
FileID int
Status tinyint
TouchedBy varchar(50)
TouchedWhen datetime
現在、このテーブルには主キーはありませんが、Status と TouchedWhen にはクラスター化されたインデックスがあります。
テーブルが拡大し続け、それに対するクエリのパフォーマンスが低下するにつれて、私が考えていたのは、PrimaryKey を追加して、ヒープ ルックアップ (FileID、Status、TouchedWhen の主キー) から抜け出すことです。
私が直面している問題は、TouchedWhen の丸めの問題が原因で、まったく同じ日時のエントリが 2 つある場合があります。
それで、それをdatetime2(7)に変換し、その時点で重複しているものを変更するのに何が必要かを調査し始めました。私のテーブルは次のようになります:
FileID int
Status tinyint
TouchedBy varchar(50)
TouchedWhen datetime2(7)
FileID、Status、TouchedWhen の主キー
私の質問はこれです-重複がある場合、既存のテーブルを通過してミリ秒を追加する最良の方法は何ですか? オンラインのままにしておく必要があるテーブルにこれを行うにはどうすればよいですか?
事前に、ありがとう、
ブレント