2010-12-06 13 views
10

私は、Change Data Captureを有効にすると明らかにデータベースのパフォーマンスに影響を与えることを読んでいます。 このパフォーマンスの低下は、CDCが有効になっているテーブルまたはデータベース全体のすべての処理に影響を与えるテーブルにのみ影響しますか?変更データキャプチャのパフォーマンスの損失がCDC対応テーブルに制限されていますか?

私の状況では、SSISを使用しており、大量のデータをステージングデータベース私はまた、変換に使用されるいくつかのルックアップテーブルをシステムに持っています。これらの参照テーブル(インポートされたデータではない)のみの変更を監査する手段としてCDCを使用したいと考えています。 ETLの一部として実行される主なクエリはこれらの参照テーブルにアクセスしますが、それらを変更しないので、まだ顕著なパフォーマンスヒットがあるかどうかを判断しようとしていますか?

ありがとう

答えて

25

この質問に対する回答は、はいといいえの両方になります。

なしテーブルが変更データキャプチャが有効になっている

ため、関連する捕捉 インスタンスは、ソーステーブル内の変更データの 普及をサポートするために作成されます。キャプチャインスタンス は、チェンジテーブルと最大2つのクエリ関数 で構成されています。

追跡されていないテーブルは、データの追跡には関係していないようです。

はい

変更 データキャプチャの変更データのソースは、SQL Serverの トランザクションログですので。挿入、更新、 と削除が追跡された ソーステーブルに適用されると、 という変更がログに追加されます。 ログは変更 のデータキャプチャキャプチャプロセスへの入力として機能します。この は、ログを読み取って、追跡テーブルの 関連変更テーブルへの変更についての情報を に追加します。:変更のソースとして

は、トランザクション・ログから、変更の普及を読み、トランザクションログ (物事の私の解釈免責事項)をinterpreteするキャプチャインスタンスを必要としています。 CDCを有効にするだけで、データベース全体にパフォーマンスが影響します。

勧告

ストレージ:

  • 変更データキャプチャアーキテクチャを計画し、ログサイズの有意な増加を取り、考慮にボリュームI/O操作をログに記録します。
  • sys.sp_cdc_enable_tableでファイルグループを指定することを検討してください。
  • sys.sp_cdc_enble_dbを実行する前にデータベースの既定のファイルグループを変更して、データキャプチャメタデータ、特にcdcを変更することを検討してください。lsn_time_mappingsは、PRIMARYとは異なるファイルグループにあります。

ワークロードの行動:

  • は、行が挿入した直後に更新する必要があるシナリオを避けるようにしてください。
  • 大量の更新トランザクションが頻繁に発生するテーブルへの変更を取得するために、変更データキャプチャを使用しないようにしてください。

チェンジ・データ・キャプチャ・パラメータ:

  • は常にあなたが本当に追跡する必要がある唯一の列に変更データの取得によって取得された列のリストを減らします。
  • 正味の変更をサポートする必要がない場合は、@を0に設定してください。
  • 変更データの取り込みが作業負荷に追いつくことができるかどうかを確認するために使用します。
  • 変更データの取得がワークロードに追いつかない場合は、スキャンジョブパラメータを変更してスキャンジョブを再開してください。サーバーは現在、何の問題その負荷に追いついていない場合は

結論
は、私は非常にあなたがテーブルを変更頻度の低いためにCDCを有効にする任意のパフォーマンスの問題に気づくでしょう疑います。

ソース

+1

非常によくexplained..mustはupvoteに値します... –

関連する問題