0

基本的に同じことを行うストアド プロシージャの 2 つのバージョンがあります。大きなテーブルと、パラメーターとして提供される別のテーブルに対して、正しい結合クエリを実行します。

  • 最初のバージョンは、XML を含む文字列を受け取り、から選択しますOPENXML
  • 2 番目は、指定されたテーブル変数パラメーターを受け取ります。

2 番目のテーブル バージョンは、最初の XML バージョンよりもパフォーマンスが優れていると予想していました。これは、構文解析、doc オブジェクトの作成と破棄を明示的に行わないためです。ただし、私のテストでは、両方のバージョンがほぼ同時に実行されることが示されています。

その理由は何ですか?テーブル パラメータのシリアル化は文字列パラメータよりも悪いですか? XML クエリは非常に効率的ですか?

4

1 に答える 1

1

実行計画を見てください。

私の印象では、ほとんどの労力は XML のシリアル化ではなく、実際の結合にあるということです。これはどちらのオプションでも同じです。

于 2012-09-28T11:46:48.743 に答える