web-dev-qa-db-ja.com

SQL Server 2008R2データベースですべてのDML操作を監査する方法

インデックス付きビューを実装するオプションを評価するために、テーブルのDML操作の使用法を確認したいと思います。データベースは私にとっても関連するビジネス知識にとっても新しいので、私にはわかりません。

数日以内に統計をすばやく収集する方法はありますか?

StandardEditionを使用しています。

2
Magier

インデックスの更新数(影響を受ける行数、インデックスの幅などに関係なく)を知りたいだけで、サービスが再起動されたり、インデックスが削除/再作成されたりしないことを確認できる場合その時間枠で、現在および数日後に sys.dm_db_index_usage_stats を確認できます。

キンが提案したように、 ナチョのFAQ を見てください。基本的に:

  • DMVは、次の場合にリセットできます。
    • サーバーが再起動されます
    • インデックスが削除され、再作成されます
  • -x-m、またはトレースフラグ2330で開始する場合、DMVは空になる可能性があります。
  • フィルタリングされたインデックスがある場合、更新がインデックスの行に影響を与えなかった場合でも、更新によって使用統計がインクリメントされます
  • クラスタリングキーのいずれかの列が変更されると、すべての非クラスタリングインデックスも使用統計をインクリメントします
  • DMLの試行後に発生したエラーは、引き続きカウンターをインクリメントします
  • インデックスの使用法は操作の数を示します-タッチされた行またはページの数を報告する方法はありません(非常に幅の広いテーブルのすべての行の更新は、非常に細いテーブルの単一の行の更新と同じように見えます)-実際に触れた音量の詳細が必要な場合は、 sys.dm_db_index_operational_stats を参照してください。

また、DMVのスナップショットに関するTimFordのシリーズ:

2
Aaron Bertrand