私はXML列を持つテーブルを持っています。ドキュメントはかなり大きく、数多くあり、私は基本的なクエリのパフォーマンスを向上させるさまざまな方法を試してきました。スキーマがXML列を遅くする理由は何ですか?
ドキュメントには、列にXMLスキーマを適用すると、SQL Serverがクエリ—を最適化するのに役立つことが示されているため、利用可能だったため—スキーマコレクションを作成してXML列に適用しました。
クエリのパフォーマンスが崖から落ちました。
私は、非常に簡単なテストは耐え難いほど遅くなったということです。私は列の型を削除し、以前と同様に実行されたクエリを実行します。これは誰にも起こったのですか?
スキーマ自体がかなり大きく、精巧であることに注意してください。それでも、この結果は私には直感的ではないようです。
編集:私の懸念はSELECT文だけです。実際、これらの文書は編集されず、閲覧されることはありません。だから、レコードが挿入され、検証された後に、可能な最適化の他に何かのためにスキーマが必要になるのはなぜわかりません。
また、this issueがあります。のインデックスは、パフォーマンスに悪影響を与える可能性があります。それは私の問題ではありません—インデックスは、私が実行しているクエリで、肯定的または否定的な影響はありませんでしたが、上記のシナリオをインデックスの有無にかかわらず試しました。
どの部分が遅いですか?インサート?更新?削除? SELECT? –
私はSELECTについて心配しています。当然INSERTは少し遅いですが、私はそれを期待しています。SELECTのように(40〜50倍遅いなど)不合理ではありません。 – harpo