私は0.1秒ごとに約1kバイトのデータを保存するアプリケーションを持っています。これは36MByte/hour、つまり約600MByte/dayです。データを保存するために使用できる技術
データは圧縮率が高いため、10:1〜100:1の間で圧縮する必要があります。すべてのデータはタイムスタンプによって参照されます。
私の質問はこれです:このデータを保存するにはどのようなテクニックを使用できますか?
制約:
- データベースのサイズが大きくなるにつれて増加することはできませんデータベースにデータを挿入するための時間。この制約はMicrosoft SQL Serverを排除します(試してみましたが、5日後には「挿入」が1分掛かるたびに停止します)。
- 1時間に4時間のデータ記録を効果的に中断することができます。これにより、圧縮などの時間が短縮されます。
- LINQ for .NETと互換性があります。つまり、 LINQアダプタ(MySQLスタイルのインターフェイスは大丈夫でしょう)。
SQLサーバーの構成が正しくありませんでした。インサートが無期限に一定の時間がかかるように設定することは可能です。 –
1分以上挿入しますか?時間の99%は、これはデータベースではなくクエリの問題です。 NOLOCKでInsertを指定して、挿入されている行のインデックスがある場合は、挿入された行が途中で無作為にではなく、インデックスの「最後」またはその近くに移動することを確認してください。 – Juliet
私はLinqを使用する必要性を再評価したいと思います...私はLinqが素晴らしいと思うのですが、私はこれを自分で使っていますが、このようなことはクライアント側の処理を奨励するプログラミング方法が気になります(サーバー側処理)。 – Arafangion