0

これを処理するためのコードを書き始める前に、何が最善の方法であるかについてのフィードバックが必要です。

この問題の背後にある背景は、プログラムがクラッシュしてデータが失われた場合に備えて、C# オブジェクト用にある種のストレージを作成したいということです。

SERIALIZEDオブジェクトをデータベースに格納し、それを正常にデシリアライズして同じオブジェクトにキャストして、ODP.NET からクエリできるようにしたいと考えています。

ちなみに、シリアル化されたオブジェクトのデータは、シリアル化後に約50 MEGABYTESになります。

使用法: 毎日、シリアル化されたオブジェクトが保存され、1 日あたり最大 10 回取得されます。

私の質問は、誰かが以前にこれを行ったことがある場合です。

  • それを格納するために使用するのに最適なデータ型は何ですか? (フラットなXMLにシリアライズしてCLOB/BLOB文字列として格納することを考えていました)
  • そのための最速の方法は何ですか、または効率的にするために知っておく必要がある手順はありますか?
  • C# の Serialize と Deserialize を使用すると、オブジェクトが同じになることが保証されますか (C# での XML のシリアライズの信頼性についてかなり質問されましたが、代わりに JSon を使用することを考えていました)。

皆さんの考えを教えてください!

ありがとう!

4

1 に答える 1

1

オブジェクトの大部分がテキストである場合、データをシリアル化した後 (すべてのプロパティが本当にシリアル化可能であると仮定すると、XML または JSON で問題ありません)、データをバイト配列に圧縮し、バイナリとして格納することをお勧めします。取得したら、解凍してから逆シリアル化します。テキスト、特に XML は非常にうまく圧縮されるため、50MB が 10MB 以下になる可能性があります。

あなたのコメントに基づいて、圧縮は絶対に価値があります。また、1 日あたり 10MB 程度しか追加しない場合は、データベースに悪影響を及ぼさないように思えます。1 年に数 GB 程度です。

于 2013-06-07T15:34:21.870 に答える