現在開発中ですが、機能しているソリューションで SQL データベースを本質的に置き換えるための最良のソリューションを見つけようとしています。データ ストアには、バックアップおよび/またはロール イン/アウトが可能なテーブル パーティショニングとファイル グループを含める必要があります (IBM DB2 パーティショニングで説明されているように: http://www.ibm.com/developerworks/data/library/ techarticle/dm-0605ahuja2/index.html )、大量の行の挿入/更新も許可します。
現在、SQL データベースに格納されているテーブルの構造は単純です。 ID long (PRIMARY KEY) TimeStamp DateTime (PRIMARY KEY) Value float Attribute int
ID は現在のデータベースの ID とは関係ありませんが、別の場所から取得されます。ID とタイムスタンプは一緒に挿入/更新の主キーとして使用されます
テーブル内のデータ。現在、テーブル値パラメーターを持つストアド プロシージャを .NET から使用して、一度に 50K 行のデータをテーブルにマージできるようにしています。現在、開発マシンで 1 秒あたり約 10,000 エントリを測定しましたが、これには満足しています。ただし、このソリューションはコストに敏感であり、テーブルが大きくなるにつれてパフォーマンスが要求されるため、テーブルのパーティショニング (TimeStamp フィールドの範囲) を実行し、パーティションを複数のファイルに分割してメンテナンス/バックアップを簡素化する機能が必要です。さらに、顧客が少なくとも ODBC を介してデータに対してクエリ (読み取り専用) を実行できる必要があります。
私はいくつかの NoSQL オプション、mySQL、および DB2 を見てきました (現在のところ、これが最も適しているようです)。何が最適かについて、誰かが持っている洞察をいただければ幸いです。もちろん、「パーティショニング」ロジックをコードに移動するオプションは常にありますが、可能であればそれは避けたいと思います。