1) 巨大な ( 700MB
~ 1000 万要素) XML ファイルを読み込みます。2)順序を維持し
て解析します。
3)SQL挿入ステートメントを含むテキスト(1つ以上)ファイルを作成して、DBに一括ロードします。
4) リレーショナル タプルを記述し、それらを XML に書き戻します。
私はこれを行うための最良の (== 高速高速高速...) 方法についていくつかのアイデアを交換するためにここにいます。C# 4.0 と SQL Server 2008 を使用します。
XmlTextReader は良いスタートだと思います。しかし、そのような巨大なファイルを処理できるかどうかはわかりません。インスタンス化されたときにすべてのファイルをロードしますか、それとも実際の読み取り行だけをメモリに保持しますか? 私はできると思います、while(reader.Read())
そしてそれはうまくいくはずです。
テキストファイルを作成する最良の方法は何ですか? XML の順序を保持する必要があるため (いくつかの番号付けスキーマを採用)、計算などを行うためにツリーの一部をメモリに保持する必要があります... stringbuilder で反復する必要がありますか?
2 つのシナリオがあります。1 つはすべてのノード (要素、属性、またはテキスト) が同じテーブルにある (つまり、同じオブジェクトになる) シナリオで、もう 1 つはノードの各タイプ (この 3 つのタイプのみ、コメントがないなど) のシナリオです。 ..) DB にテーブルを作成し、このエンティティを表すクラスを作成します。
私の最後の具体的な質問は、 DataSet がどれほど優れているかということds.WriteXml
です。10M タプルを処理できますか? データベースからチャンクを取得して XmlWriter を使用するのが最善の方法かもしれません...本当にわかりません。
私はこれらすべてをテストしています...しかし、皆さんの話を聞くためにこの質問を投稿することにしました。
前もって感謝します、
ペドロ・デュッソ