web-dev-qa-db-ja.com

SQL Server 2016:テンポラルテーブルのパフォーマンスとトリガーおよびCDC

システムバージョンのテンポラルテーブルと、DBトリガーやCDCなどの古いオプションとの比較を見つけるのは非常に難しいようです。現在、SQL Server 2016で拡張テストを作成する時間がないので、ここで質問したいと思いました。

基本的に、トリガーの一般的な利点は、トリガーがスタンドアロンおよびクラスター化/ alwaysOn環境で管理しやすく、同期のためにリアルタイムであり、ユーザーIDなどのセッションデータにアクセスできることです。

一方、CDCはもう少し管理が必要で非同期でありながら、much軽量であるため、パフォーマンスが大幅に向上します。したがって、トリガーによって引き起こされるボトルのネッキングが問題になる可能性があるという疑いがある場合は、CDCが基本的に優れたソリューションになります。ハードウェア要件では、変更の追跡にログとcdc監査テーブルを使用しているため、CDCによる追加のスペース要件はごくわずかです。

質問:テンポラルテーブルは上記の2つとどのように比較されますか?速度、パフォーマンス、ストレージ容量の使用に関して。トリガーやCDCの代わりにテンポラルテーブルを使用する必要があるのはいつですか?いつ私はすべきではないのですか?

私は、DB監査の背後にあるビジネス要件と技術的な制限がプロジェクトの要件と範囲に大きく依存しているため、1つの簡単な答えはないので、潜在的に複雑なものは何でも理解しています。しかし、上記の質問にもっと光を当てる何かがいただければ幸いです。ありがとう!

7
Kahn

ビジネスケースによって異なりますが、テンポラルテーブルと変更データキャプチャは異なる機能を提供します。

テンポラルテーブルは、ある時点でのテーブルのバージョンを提供するために使用されます。ユースケースは、ディメンション属性の変化を追跡し、いつでもレポートしたい、ゆっくり変化するディメンションである場合があります。

変更データキャプチャは、OLTPテーブルで使用できます。これにより、データマートへのエクスポートを簡単に行うことができます。別のテーブルへのすべての変更がログに記録されるため、変更された行を簡単に表示できます。最後のエクスポートLSNポイント。

5
Andy Jones