パフォーマンスのヒント

XPath、XQuery、および XSLT を使用する際にパフォーマンスを向上させるには、 以下のヒントに従ってください。

表 1. パフォーマンスのヒント. パフォーマンスを向上させるためには、 以下のヒントに従ってください。
言語 ヒント
XPath // を使用すると、操作に負荷がかかります。パスをより明示的にすると、 パフォーマンスが向上します (例えば、a//c と指定せずに a/b/c と指定します)。このことは、パスが大規模文書のルートまたはその近くで開始される場合には、特に重要です。
last() 関数は、項目をカウントするためのシーケンスを十分に評価する必要があるため、 負荷がかかる操作になります。
定数による定位置述部 ([3] など) は、一般に、計算後の値による定位置述部や 変数から取得された値による定位置述部より効率的です。
XQuery 照会が 1 つ以上のスキーマをインポートし、その照会が 2 回以上実行される場合には、XQueryExecutable インスタンスで registerImportedSchemas メソッドを呼び出すことを検討してください。 registerImportedSchemas が呼び出されない場合、いずれかの execute メソッドが呼び出されるたびに、インポートされたスキーマがロードされます。デフォルトでは、インポートされたスキーマは、結果ツリーを確認するためにのみ使用できます。しかし、このメソッドを呼び出すことは、このスキーマを XFactory に登録することと同じ効果を持ちます (つまり、入力文書を確認するためにこのスキーマが使用されます)。
XSLT パラメーターは、変数よりアクセス時間がかかります。外部からパラメーターの値を指定する 必要がない場合には、変数を使用してください。
xsl:key エレメントおよび key() 関数の使用は、 ノード・セットの検索に効果的な方法です。
パターン・マッチングおよび apply-templates ディスパッチは、 一般的に、xsl:if や xsl:when 文より高速です。
パターン・マッチングにおける定位置述部は、一般的に負荷がかかります。
一般に、簡単なパターン・マッチング ("address" など) のほうが、 複雑なパターン・マッチング ("/purchaseorder/shipping/customer/postal/address" など) よりも 処理に負荷がかかりません。文書の構造およびスタイルシートの動作を理解しておくと、 必要以上に詳述せずにすみます。
一部のデータ・モデルでは、xsl:skip-space 操作を文書のロード時ではなく、 文書のナビゲーション時に適用する必要があります。これは、多少、実行時にオーバーヘッドがかかります。
スタイル・シートが 1 つ以上のスキーマをインポートし、そのスタイル・シートが 2 回以上実行される場合には、XSLTExecutable インスタンスで registerImportedSchemas メソッドを呼び出すことを検討してください。 registerImportedSchemas が呼び出されない場合、いずれかの execute メソッドが呼び出されるたびに、インポートされたスキーマがロードされます。デフォルトでは、インポートされたスキーマは、結果ツリーを確認するためにのみ使用できます。しかし、このメソッドを呼び出すことは、このスキーマを XFactory に登録することと同じ効果を持ちます (つまり、入力文書を確認するためにこのスキーマが使用されます)。
XPath、XQuery、および XSLT デコードおよびエンコードは、負荷がかかります。一般に、 UTF-8 および UTF-16 は、他のエンコードより速く読み書きできます。

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cxml_perf_tips
ファイル名:cxml_perf_tips.html