16.20 - 大きいXML文書の処理 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ XMLデータ型

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1140-162K-JPN
Language
日本語 (日本)

XML型には2 GBまでのサイズの値を格納することができます。しかし、XSLTやXQueryなどの操作がサポートされるのは、サイズの小さい文書に対してのみです。1回のパスで評価可能なメソッドは、どんなサイズの文書についてもサポートされています。それらのメソッドは、何らかの状態情報を保持するためのメモリ リソースを消費することなく、XML文書を1方向の横断的操作で処理するストリーム実装が可能です。これには、構文解析や検証のためのメソッドが含まれます。さらには、大きいXML文書ツリーのサブツリーに対して問合わせを評価するXMLEXTRACTの制約付き実装も含まれます。それらは、いずれも大きい文書のストリーム処理が可能です。

XQueryやXSLTなどの操作は、ストリーム方式では評価できません。それらの操作では、対象となる文書をメモリ中にロードする必要があります。大きいXML文書の場合、そのためにかなりの量のメモリ リソースが消費されることがあります。例えば、XSLTでは、文書とスタイルシートの両方をメモリにロードする必要があり、文書のサイズの約10倍のメモリが必要になります。同じように、1つのXML文書を表わすXQueryデータ モデル インスタンスでは、ディスク上での文書サイズの20倍から30倍ものメモリを占有することがあります。したがって、それらの操作は、メモリの制約内に収まる小さい文書に対してのみサポート可能です。

そのような操作で利用可能なメモリの最大量は、XML_MemoryLimit DBS制御フィールドの設定値を使用して指定できます。このフィールドによって許可されるよりも多くのメモリがXML処理操作で必要になった場合、エラーになります。

また、XML_MemoryLimitの設定をTeradata Active System Management(ASM)と共に使用することによって、メモリを大量に消費するXML関数およびメソッドの同時呼び出し数を制限することができます。Teradata Viewpointの「ワークロード管理」ポートレットを使用すると、XMLの関数およびメソッドに対してフィルタ、スロットル、および分類基準を設定することができます。それにより、XML操作で利用可能なメモリ量が制御され、問合わせの暴走によってシステム リソースが使い尽くされたりパフォーマンスが低下したりするのを防ぐことができます。

推奨事項: XML_MemoryLimitの設定値に対して文書サイズが大きくなることが予期される場合は、データ問合わせの効率を上げるために、XMLコンテンツ格納の代替手段としてXMLシュレッディングを使用することを検討してください。一般に、大きい文書を対象とする問合わせのパフォーマンスは、サイズの小さい文書の場合に比べて低くなるため、問合わせのパフォーマンスが重要な場合はXMLシュレッディングを検討してください。