2016-12-23 14 views
0

デルタデータ(特定の日付以降に変更、削除、追加されたデータを意味する)を既存のシステムから収集するアイデアを探しています。 これはSQL Server 2008 R2のパーティション機能を使用して達成できますか?私はこれが既存のデータを別のファイルグループにアーカイブするのに使用できることを認識しています。パーティション機能を使用するSQL Server 2008 R2のデルタデータ

新しいファイルグループに新しいデータ(トリガーとして)を書き込むPartition関数を作成できますか?我々は適切な監査列を持っていない

(CREATEDATE/modifieddate)テーブルのほとんどで:(。この時点で同様に表に新しい列を作成することはできません。

すべてのヘルプそして、の考えをはるかに高く評価されます。

+0

パーティション分割は、変更またはアーカイブの識別とは関係ありません。 SQL Serverには既に変更追跡が用意されており、すべてのエディションで利用できます。列を追加する必要はありません。データベースとテーブルレベルで変更の追跡を有効にするだけです。 Enteprise版は、Change Data Captureもサポートしています。 –

+0

CDCはSQL 2008 R2の標準版では使用できません。残念ながら、私の顧客はスタンダードエディション –

+0

を使用しています。私はCDCではなく変更トラッキングを書いています。変更追跡はエクスプレス –

答えて

0

パーティションのアーカイブや変更を特定する話ではありません。大規模なテーブルを分割するために使用されます。

SQL Serverは、変更された行の主キーを追跡するために、すべてのエディションに変更をChange Trackingを提供しています理由とオプションで、変更された列の値t特定のデータベースバージョン以降に変更されたハット。

これは、テーブルを変更する必要のない安価なプロセスです。変更された行を識別するために必要な最小限の情報を記録します。例えば、変更された行を引き出し、あなたが最後のチェック以降に変更のPKを引いて、変更された行を引っ張ってソース表と結合しCHANGETABLE機能を使用するには:

SELECT 
    CT.ProductID, 
    P.Name, P.ListPrice,  
    CT.SYS_CHANGE_OPERATION, CT.SYS_CHANGE_COLUMNS, 
    CT.SYS_CHANGE_CONTEXT 
FROM 
    SalesLT.Product AS P 
RIGHT OUTER JOIN 
    CHANGETABLE(CHANGES SalesLT.Product, @last_synchronization_version) AS CT 
ON 
    P.ProductID = CT.ProductID 

CT.SYS_CHANGE_OPERATION戻っI、U、Dによって行が挿入、更新、または削除されたかどうか。

もう1つの方法は、レコード全体をキャプチャするChange Data Captureです。 SQL Server 2016 SP1以前は、Enterprise Editionでのみ使用できました。また、より重いプロセスですが、変更されていないデータをロードするためにソース表と結合する必要はありません。

CDC、パーティション化、メモリ内テーブル、圧縮および列ストアなど、以前はエンタープライズ版でしか使用できなかったSQL Server 2016 SP1の機能は、ExpressおよびLocalDBでも使用できるようになりました。

+0

これは非常に役に立ちます。ありがとうございました –

+0

誰もがdownvoteを説明する気に?それとも、ただのトローリングですか? –

+0

私は数日前にこの答えに投票しました。私は今それを見ることができません。これは技術的な問題ですか?答えは私にとって非常に役に立ちました。 –

関連する問題