在Oracle数据库中存储XML的最佳列是什么?

3
我正在寻找在Oracle数据库中存储XML的最佳方法。目前,我们使用BLOB类型列,但我推动将此列移动到XMLType或基于XMLType模式的列。我刚刚发现了这篇文章XML:To CLOB or Object?来自Oracle,但我还没有做出决定。
所以,有没有人之前遇到过这个问题? 另外,想法是通过Red5服务器完全将XML提取到Flash客户端,因此我在这里寻找的是最佳吞吐量。从他们提供的数据中可以看出,CLOB更快地加载到数据库中,但基于XMLSchema的检索速度更快。
谢谢,Joaquín.

我无法找到所引用的文章。目前在Oracle Magazine网站上可用的最早问题是2005年1月至2月,而该文章的日期为2003年。 - user272735
2个回答

3
在Oracle中使用对象意味着多个SQL/PLSQL上下文切换,这可能会影响性能。如果在Oracle端不处理XML,则将其保留为LOBs。当涉及到放置/检索未经处理的XML(即字节流)时,“优秀的DML性能”是一个夸大其词的说法。实际上,如果您的服务器每秒处理少于10个查询,您几乎不会注意到任何差异。

1

如果您只想选择或更新XML的部分内容,那么对象关系存储是最好的选择。唯一的缺点是,由于XML在内部被剪切,因此空格和格式将被删除,但正如文档所说,它仍符合DOM。

如果您只想将数据库用作存储,并且所有XML操作都将在客户端上进行,请选择LOB存储选项。

如果您使用的是11g,则现在有一个XMLIndex,可以极大地提高更新/选择使用LOB选项存储的XMLType字段的性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接