データベースにログファイルを記録しようとしています。私の質問は、データベースにログを作成する負荷が少ないものです。私はインベントリプログラムのために、長期のログファイルを格納することを考えています。おそらく3〜5年です。ログ(.txtファイル)をアップロードすると、イベントごとに1つのレコードがデータベースに挿入されます。記録時の効率性ログ
処理:バーコードスキャナを使用します。 バーコードをスキャンした後、ログインした人の詳細、日付と時刻、製品の詳細が一枚ごとに保存されます。
私は2つのアイデアを思いついた。スキャンイベントの後
- 、それはバッチを終えた後、その後
DataTable
に保存されます。..DataTable
が*.txt
ファイルに書き込まれ、私のデータベースにアップロードされます。 - スキャンしたすべてのバーコードの後に、INSERTクエリが実行されます。 私は、このサーバー
二つのオプションの長所と短所は何ですかを使用してだけではないですので、このオプションは、サーバー側で重いだろう疑いますか?
より効率的なログの保存方法はありますか?
秒を使用します。実際にはデータベースを使用するのが正しい方法です - データをスキャンし、安全なACID準拠のストレージに保存してください。 –
どの程度のデータ損失が許容されますか?許容可能なレイテンシのレベルは? (待ち時間=スキャンイベントとデータベースに表示されるログの間の時間)。キューを調べることをお勧めします。あなたのスキャナは個々のログイベントをキューに投げ込みます。データベースについては何も知らないので、 SQL Serverはキューから物を読み込みます。スキャナについては何も知りません。いずれかの側で何らかの種類のスループットの不一致がある場合、キューはそれを処理します。あなたのオプション1はスキャナ側に設定されたキューですが、私は中央のスタンドアロンキューについて話しています –
@ Nick.McDermaid私が集めたものから、データ損失はありません。そこにいる。レイテンシについては、比較的短い時間(0.5ms〜2sec)でなければなりません。洞察をいただきありがとうございます。 – Hexxed