複雑なプロセスをSQLから.NETアプリケーションに移動しています。私は、SQLから必要なデータのみをプルダウンし、データテーブルに格納するというブルートフォースアプローチを採用しています。ステッピングを使用したパイプラインパターンを使用して、並列で実行できるプロセスを分割しました(他のプロセスに依存せず、同じデータビットで作業することもありません)。
すべてが順調に進んでいますが、DataSet/DataTable構造よりも優れたパフォーマンスを発揮するインメモリSQLソリューションがあるかどうかを知りたいです。一度に5万行について話し、最大1mのサポートデータ行(5b行を読み取る)を使用します。1行(サポートするすべてのデータ行を含む)の行サイズは、おそらく平均で約1Kです(文字列が大きいため)。
私の質問は、特にデータセットのパフォーマンス、メモリオーバーヘッド、および永続性に関するものです。リカバリの目的で、各段階でデータをディスクにシリアル化する必要があります。
代わりに、行を強く型付けされたモデルにマップする方がよいでしょうか?データセットの関係やその他の利点は必要ありません。並列処理を使用して、ほとんどの検索機能を独自のものに置き換えました。
データはプリミティブ型のみを使用し、ブロブ、ストリーム、地理などは使用しません。