SQL 2000 サーバーを使用しており、1 日のさまざまな時間帯や月のさまざまな日に実行されるさまざまなジョブが実行されています。通常、SQL プロファイラーを使用してトレースを実行するのは、パフォーマンスのトラブルシューティングのために非常に短い期間だけですが、この場合、データベースに対して実行されるクエリの種類の全体像を正確に把握することはできません。日または週または月のコース。
長時間実行される SQL トレースのパフォーマンス オーバーヘッドを最小限に抑えるにはどうすればよいですか? 私はすでに知っています:
- SQL プロファイラー UI を使用する代わりに、トレース サーバー側 (sp_ create_trace) を実行します。
- データベース テーブルではなく、ファイルにトレースします (DB サーバーに余分なオーバーヘッドが追加されます)。
私の質問は本当にフィルターに関するものです。特定の期間または読み取りを超えて実行されるクエリのみをログに記録するフィルターを追加した場合でも、サーバー上のすべてのアクティビティを調べて、ログに記録する必要があるかどうかを判断する必要がありますよね? では、そのフィルターを使用しても、トレースは、既に容認できないパフォーマンスの限界に達しているサーバーに対して、容認できないレベルのオーバーヘッドを作成するのでしょうか?