0

初心者の質問:

たとえば、次のような T-SQL があります。

     DECLARE @xml XML
         SET @xml = '<r><b>123</b></r><r><b>456</b></r>'
      SELECT row.col.value('(b/text())[1]', 'integer') AS b_id
        FROM @xml.nodes('//r') row(col)

XPath 式を実行するとき、MS Sql Server が SAX ベースのパーサーを使用するか、DOM ベースのパーサーを使用するかを知っていますか? これを使用して大量のデータを一時テーブルにステージングし、一時テーブルでさらに処理を行うことを考えていたため、これについて明確にしたかったのです。(CPU サイクルの消費に関して) データ サーバーに対して礼儀正しくするために、問題が発生しないようにしたかったのです。ネットで調べてみましたが、明確な答えが得られませんでした。

また、OPENXML を使用する必要がありますか?アドホックなものよりも利点がありますか?

前もって感謝します!

4

1 に答える 1

0

あなたの SAX/DOM クエリにはお答えできませんが、あなたの本当の質問は、XML を SQL Server に効率的にロードする方法のようです。This questionは1つの方法に言及しており、SQL Serverのドキュメントにはの方法があります。

OPENXML()最初に XML ドキュメント全体をパラメーターとしてsp_xml_preparedocumentに渡す必要があるため、これはおそらく最良の方法ではありません。これは、データの一括読み込みに役立つ方法ではないことを意味します。

ただし、テストを開始して、さまざまな一括読み込みソリューションが環境でどのように機能するかを確認するのが、おそらく最も簡単な方法です。

于 2012-07-26T19:45:52.230 に答える