log4net
新しい Web プロジェクトで使用する予定です。私の経験では、ログ テーブルがどれだけ大きくなるかがわかります。また、エラーや例外が繰り返されることにも気付きます。たとえば、132.000 を超えるレコードを持つログ テーブルにクエリを実行したところ、distinct を使用したところ、2.500 レコードのみが一意 (~2%) であり、他のレコード (~98%) は単なる重複であることがわかりました。そのため、ロギングを改善するためにこのアイデアを思いつきました。
同じレコードを挿入しようとするたびに更新される新しい列がいくつかありますcounter
。updated_dt
例外の原因となったユーザーを追跡する場合は、user_log
NN 関係をマップするために、または log_user テーブルを作成する必要があります。
このモデルを作成すると、これらすべての長いテキストを比較しようとすると、システムが遅くなり、非効率になる可能性があります...ここでのトリックはhash column
、メッセージと例外をハッシュし、それにインデックスを構成する 16 または 32 のバイナリも必要です。 . HASHBYTES
私たちは私たちを助けるために使用できます。私は DB の専門家ではありませんが、同様のレコードを見つけるためのより迅速な方法になると思います。また、ハッシュは一意性を保証しないため、同様のレコードをはるかに高速にローカライズし、後でメッセージまたは例外を直接比較して一意であることを確認するのに役立ちます。
これは理論的/実際的な解決策ですが、うまくいくのでしょうか、それともより複雑になりますか? 除外している側面や、他に考慮すべき点は何ですか? トリガーは挿入または更新の仕事をしますが、トリガーはそれを行うための最良の方法ですか?