1

Currently, I would like provide this as an option to the user when storing data to the database.

Save the data to a file and use a background thread to read data from the textfile to SQL server.

Flow of my program: - A stream of data coming from a server constantly (100 per second). - want to store the data in a textfile and use background thread to copy data from the textfile back to the SQL database constantly as another user option.

Has this been done before?

Cheers.

4

1 に答える 1

1

あなたの質問は確かに少し混乱しています。

私はあなたがそれを意味していると推測しています:

  • 1 秒あたり 100 行が特定のソースまたはサーバーから取得されます (例: ログ エントリ)
  • ユーザー向けのオプションの 1 つは、テキスト ファイル キャッシュです。行はテキスト ファイルに格納され、定期的にテキスト ファイルの内容の SQL Server テーブルへの増分コピーが実行されます。
  • ユーザー向けのもう 1 つのオプションはdirect insertです。データは、テキストファイルを介さずに、入力時にデータベースに直接保存されます。

私は正しいですか?

はいの場合は、次の行で何かを行う必要があります。

  • INSERTテーブルへのアクションでトリガーを作成する
  • そのトリガーで、挿入しているユーザーを確認します。ユーザーがテキストファイルのキャッシュを無効にしている場合、挿入は続行できます。それ以外の場合、データはテキスト ファイル (またはキャッシュ テーブル) にリダイレクトされます。
  • キャッシュ テーブルまたはテキスト ファイルで新しいデータをチェックし、新しいデータを実際のテーブルにコピーし、キャッシュされたデータを削除するストアド プロシージャを作成します。
  • 上記のストアド プロシージャを毎分、毎時、毎日実行する SQL Server エージェント ジョブを作成します。

T-SQL からテキスト ファイルへのインターフェイスはあまり柔軟ではないため、代わりにキャッシュ テーブルを使用することをお勧めします。なぜテキストファイル?

さらに言えば、なぜデータをテーブルに挿入する前にキャッシュするのでしょうか? 質問の内容を説明していただければ、より良い解決策を提案できるかもしれません。

于 2010-11-11T23:43:22.833 に答える