XML 列を含むテーブルがあります。ドキュメントは非常に大きく、数が多いため、基本的なクエリのパフォーマンスを向上させるためにさまざまな方法を試してきました。
XML スキーマを列に適用すると、SQL Server がクエリを最適化するのに役立つことがドキュメントに示されているため、スキーマ コレクションが利用可能だったため、スキーマ コレクションを作成し、その型を XML 列に適用しました。
クエリのパフォーマンスは崖から落ちました。
つまり、最も単純なテストが耐えられないほど遅くなったということです。列タイプを削除しましたが、クエリは以前と同じように実行されました。これは他の誰かに起こりましたか?
スキーマ自体はかなり大きく、精巧であることに注意してください。それでも、この結果は直感に反するように思えます。
編集:私の懸念は SELECT ステートメントのみです。実際、これらのドキュメントは編集されることはなく、参照されるだけです。したがって、レコードが挿入されて検証されると、最適化の可能性以外にスキーマが必要になる理由がわかりません。
また、XML 列のインデックスがパフォーマンスに悪影響を与える可能性があるこの問題についても認識しています。それは私の問題ではありません.インデックスは、私が実行しているクエリにプラスまたはマイナスの顕著な影響を与えていません.インデックスの有無にかかわらず上記のシナリオを試しました.