访问已压缩的XML数据

时间:2013-02-12 16:40:30

标签: xml db2 zip

如果列包含压缩的XML,是否可以使用db2表内容对列进行查询?

如果是这样,一个微不足道的例子是什么?

即,给出一个表:

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

压缩内容可能如下所示:

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

我可以运行一个查询,对于给定的id从zipped_content中提取某些数据吗?

即,只获取每只动物的名字和年龄? xml db2的东西有点棘手 - 但可能你得到了我的漂移。我可以解压缩然后使用表格的东西,还是不可能?

1 个答案:

答案 0 :(得分:0)

你可以,但性能绝对会杀死你的应用程序。您无法真正在压缩XML的结构上使用索引。此外,解压缩需要临时内存空间,您还需要考虑缓存。

为什么要压缩XML?说实话,我可以想到很少有正当理由。

如果要通过某些REST API或类似工具进行传输,只需确保您的Web服务器将使用deflate或gzip,您将达到压缩而不会损失太多性能。

如果您想节省空间,只需问问DB2 to compress the table

如果对于其他一些奇怪的要求,请同时存储拉链和解压缩版本。当另一个更改时,使用触发器更新另一个。

如果你真的想要过去并使用压缩字段,你可能应该结合使用stored procedures和SQL查询。您可能希望开发压缩/解压缩过程并将其与使用临时表组合,或者开发一个完全处理查询的过程 - 或两者的组合。是的,需要进行C / C ++ / Java开发。