2009-04-09 7 views
0

私はXML列を持つテーブルを持っています。ドキュメントはかなり大きく、数多くあり、私は基本的なクエリのパフォーマンスを向上させるさまざまな方法を試してきました。スキーマがXML列を遅くする理由は何ですか?

ドキュメントには、列にXMLスキーマを適用すると、SQL Serverがクエリ—を最適化するのに役立つことが示されているため、利用可能だったため—スキーマコレクションを作成してXML列に適用しました。

クエリのパフォーマンスが崖から落ちました。

私は、非常に簡単なテストは耐え難いほど遅くなったということです。私は列の型を削除し、以前と同様に実行されたクエリを実行します。これは誰にも起こったのですか?

スキーマ自体がかなり大きく、精巧であることに注意してください。それでも、この結果は私には直感的ではないようです。

編集:私の懸念はSELECT文だけです。実際、これらの文書は編集されず、閲覧されることはありません。だから、レコードが挿入され、検証された後に、可能な最適化の他に何かのためにスキーマが必要になるのはなぜわかりません。

また、this issueがあります。のインデックスは、パフォーマンスに悪影響を与える可能性があります。それは私の問題ではありません—インデックスは、私が実行しているクエリで、肯定的または否定的な影響はありませんでしたが、上記のシナリオをインデックスの有無にかかわらず試しました。

+0

どの部分が遅いですか?インサート?更新?削除? SELECT? –

+0

私はSELECTについて心配しています。当然INSERTは少し遅いですが、私はそれを期待しています。SELECTのように(40〜50倍遅いなど)不合理ではありません。 – harpo

答えて

0

私はあなたがすぐそこにあなたの答えを持っていると思う:

私は複雑なスキーマは、計算激しいことができ、スキーマ自体がかなり大きいことに注意して

を詳しく説明する必要があります。特に更新の過程で多くのことをしている場合は、スキーマを複数回検証する必要があります。

関連する問題