1

最大4〜5GBの大きなXMLファイルがあります。

私はなんとかそれを読むことができましたXmlReaderが、今はデータベースに値を追加したいと思います

単純な挿入クエリを使用してデータベースに値を追加しましたが、スタックしました。2GBのファイルのデータベースに値を挿入するのに2時間以上かかります。XMLファイルからデータベースに値を追加するのにより効率的な他のアプローチはありますか?

XMLファイルには属性があり、それらの値もデータベースに追加される新しいものです。

SQLServer2008と.NETを使用しています。

ありがとう..

4

4 に答える 4

1

bcp は通常、最も速い方法です...

http://msdn.microsoft.com/en-us/library/ms191184.aspx

于 2012-06-01T13:15:12.580 に答える
0

これは「バッチ」スタイルの操作のように聞こえます。別のアプローチを取ることを検討してください。

  1. xmlをBULKINSERTステートメントに変換するxsl変換を作成します
  2. 結果のSQLスクリプトをファイルに保存するか、コマンド文字列を作成します
  3. SQLスクリプトを実行します

このMSDNトピックを参照してください。

このアプローチは、XMLを反復処理して一度に行を挿入するよりも、ほぼ確実にパフォーマンスが高くなります。

于 2012-06-01T13:17:45.293 に答える
0

SQL Serverから直接XMLファイルを読み取ると、応答が速くなります。

その3ステップのプロセスは、次のように簡略化されています。

1)@doc xml='ここにあなたのxmlを宣言します'@handlerintを宣言します

2)EXEC sp_xml_preparedocument @handler OUTPUT、@ doc

3)OPENXML(@ handler、'/ ROOT / Path / To / Data')から*を選択します

于 2012-06-01T14:36:48.367 に答える
0

XmlBulkLoad を相互運用できます。これはあなたを助けることができますか?

于 2012-06-01T14:29:47.750 に答える