.NET Framework での XSLT 変換の情報: パフォーマンス

文書翻訳 文書翻訳
文書番号: 325689 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料は、原因とソリューションや、.NET Framework の XSLT プロセッサを使用して XSLT を実行する際に発生する既知のパフォーマンス問題の回避策について変換します。

XmlDataDocument と XSLT 変換の実行時間がかかる

ADO.NET の データセット 内のデータの XML 表現に XSLT 変換を適用するには、共通のアプリケーション要件です。 Microsoft .NET Framework System.Xml 名前空間内の基本クラスは、ADO.NET の DataSet と組み合わせて .NET アプリケーションでこの要件を実装する使用します。

System.Xml.Xsl.XslTransform は、XSLT の実行に使用される基本の .NET Framework クラスです変換します。 System.Xml.XmlDataDocument System.Xml.XmlDocument System.Xml.XPath.XPathDocument は、読み込みし、XSLT 変換を実行するときにソース XML データとして、ADO.NET の データセット 内のデータの XML 表現を指定する 3 つの基本 .NET Framework クラス。 これら 3 つのオプションの XmlDataDocument オブジェクトを使用して、最小限のコードためにが必要ですが同期できる、 DataSet オブジェクトに直接はインスタンス化するとき。 ただし、パフォーマンスの低下は XmlDataDocument オブジェクトを使用して、ADO.NET の データセット の XML 表現に XSLT 変換を適用すると、一般的な問題。 この動作は、.NET の RTM リリースでデザイン フレームワーク。

System.Xml.XPath.XPathDocument は XPath および XSLT の処理を最も最適化されたクラスです。 データセット のデータの XPathDocument オブジェクトの XML 表現を読み込みして最大のパフォーマンスを取得する XSLT 変換を実行すると、ソース XML として、 XPathDocument オブジェクトを指定します。 この問題に関する追加情報と、説明の回避策を実装する方法を示すコード サンプルはをクリックして資料以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照。
318580PRB: XmlDataDocument に XSL 変換が実行 XPathDocument より緩やか詳細

DataRelation オブジェクトの入れ子にされた非で DataSet を変換すると、パフォーマンスが遅くなります。

パフォーマンスの低下は、一般的な問題を複数持つ データセット の XML 表現を変換するときに関連の DataTable オブジェクトおよび DataRelation オブジェクトがシリアル化された XML のリレーションシップを表すを階層構造を反映する入れ子にされていません。

このような XML データを別の階層形式に変換するとき (HTML のような表を表示する親子階層内のデータ)、XPath を使用する必要があります 以下兄弟 前の兄弟 が遅くなる、変換するなどの場所パス軸処理データの大きなに中程度のボリュームがある場合。

このような状況は、マイクロソフトではこと データセット (が、設定されている DataRelation Nested プロパティ True ) の DataRelation オブジェクトを入れ子にしてお勧めします階層の XPath クエリ式の自然な上下を見つけて、データ変換に使用する XSLT スタイル シートでコードを記述します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
325693[PRB] 入れ子にされた非 DataRelations で、ADO.NET の DataSet を変換するとパフォーマンス時間がかかる

100% の CPU 使用率または切断時にする使用 XmlDocument XSLT 変換を使用前の兄弟の実行に

常に XmlDocument オブジェクトを使用して、 前の兄弟 XPath 場所軸を使用する XSLT 変換を XML と CPU 使用率が 100%、ソースの指定をするにより、コンピューターを停止 (ハング) しも急なドロップ、システムのパフォーマンスします。

中規模から大規模の XML ドキュメントまたはストリームに変換するときにこの動作は顕著です。 これは現在、既知の問題、.NET Framework の RTM のリリースです。 マイクロソフトを 100 %CPU 使用率、次のメジャー リリースで .NET Framework を防ぐ取り組んでください。 常に XmlDocument XPath クエリを実行する XSLT 変換は、設計目標の .NET Framework の将来のリリースではありませんと XPathDocument のパフォーマンスを一致させるを強化します。

XPathDocument クラスは、.NET アプリケーションを XPath クエリまたは XSLT 変換の XML データに対して実行する必要がありますと XML を読み込むと、推奨されるインターフェイスです。 この問題が発生した場合は、 XPathDocument オブジェクトを使用、XSLT 変換プロセスにソース XML を指定するコードを変更します。

低速のパフォーマンスと使用する xsl:key

xsl:key XSLT 要素は、XML データをグループ化または指定した要素またはソース XML 内での属性値の一意の出現を識別する頻繁に使用されます。 展示場のパフォーマンスが低下の .NET アプリケーションで XML データを変換する使用する場合、 xsl:key 要素を使用する XSLT スタイル シート。 これは、問題が原因で、既知の XSLT が、.NET Framework の RTM リリース内の xsl:key 要素のプロセッサ実装します。

この問題を解決する修正プログラムは現在可能です。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
324478管理パーサーで XSLT パフォーマンスを低下します。

インライン スクリプト ブロックに対して生成されるマネージ アセンブリが正しくリリースされません。

.NET Framework では、マネージ アセンブリは生成で <msxsl:script> をインラインでコードが含まれているを実行するには、暗黙的を読み込まれました。 ブロックします。 .NET Framework の RTM のリリースに既知の問題がこれらのアセンブリから、変換処理が完了正しくアンロードされるようにします。 この異常 XSLT 変換を実行する対象となるスタイル シートが読み込まれた繰り返し場合システムのパフォーマンス、ドロップされ、メモリ使用量で増分増加可能性があります。 ホスト プロセスがリサイクルされる場合にのみ、未リリース メモリは解放します。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
316775PRB: アセンブリを作成してスクリプトを使用して XSLT によって負荷をアンロードできません。
ASP.NET でこの異常を回避するアプリケーション、負荷が影響を受ける、スタイル シート、アプリケーションの存続期間中に一度だけ、ASP.NET キャッシュ内のスタイル シートのキャッシュおよび変換後のキャッシュされたバージョンを再利用します。 Windows フォームおよびコンソール アプリケーション プロジェクトでは、グローバル XslTransform オブジェクトのインスタンスを使用してアプリケーションの起動時に影響を受けるスタイル シートの読み込み後の変換を実行できます。 XSLT 変換はステートレスな環境で実行する必要場合、これらの回避策メソッドは適用できません (たとえば、中間層エンタープライズ サービス コンポーネント)。

XSLT 拡張オブジェクトを使用して、カスタム XPath 拡張関数を実装し、この異常の副作用を避けるをこと行うをお勧めします。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
313997.NET アプリケーションで XSLT 変換を実行するための情報: ロードマップ

プロパティ

文書番号: 325689 - 最終更新日: 2004年1月23日 - リビジョン: 3.3
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework クラス ライブラリ 1.0
  • Microsoft .NET Framework クラス ライブラリ 1.1
キーワード:?
kbinfo kbxml kbmt KB325689 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:325689
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com