0

列にzip形式のXMLが含まれている場合、db2テーブルのものを使用して列に対してクエリを実行することは可能ですか?

もしそうなら、些細な例は何でしょうか?

つまり、テーブルが与えられます:

| id | zipped_content
| 0  | some zipped content here that was once xml

zip形式のコンテンツは次のようになります。

<animals>
    <cat>
        <name>fluffy</name>
        <age>12</age>
    <cat>  
    <dog>
        <name>snoopy</name>
        <age>32</age>
    <dog>
</animals>

特定のIDに対して、ziped_contentから特定のデータを引き出すクエリを実行できますか?

つまり、各動物の名前と年齢のみを取得しますか?これは、xml db2のものでは少し注意が必要ですが、おそらくあなたは私のドリフトを取得します。解凍してからテーブルのものを使用できますか、それとも不可能ですか?

4

1 に答える 1

0

できますが、パフォーマンスによってアプリケーションが完全に停止してしまいます。圧縮された XML の構造にインデックスを実際に使用することはできません。また、解凍には一時的なメモリ領域が必要であり、キャッシュについても考慮する必要があります。

なぜ XML を圧縮するのですか? 正直なところ、その正当な理由はほとんど思いつきません。

一部の REST API などを介して転送する場合は、Web サーバーが deflate または gzip を使用していることを確認してください。パフォーマンスをあまり低下させることなく圧縮できます。

スペースを節約したい場合は、DB2 にテーブルの圧縮を依頼してください。

他の奇妙な要件がある場合は、圧縮されたバージョンと解凍されたバージョンの両方を保存してください。トリガーを使用して、他方が変更されたときに他方を更新します。

本当に圧縮フィールドを使用したい場合は、おそらくストアド プロシージャと SQL クエリを組み合わせて使用​​する必要があります。圧縮/圧縮解除手順を開発して一時テーブルの使用と組み合わせるか、クエリを完全に処理する手順を開発するか、または両方の組み合わせを使用することができます。はい、C/C++/Java 開発が必要です。

于 2013-02-12T18:14:38.390 に答える