运行XSL Transformations oracle db,而不是java应用程序

时间:2014-04-25 06:49:14

标签: java xml performance oracle xslt

我的数据库中有3个表,我正在运行XML进程。

  1. XML数据
  2. XML恢复数据
  3. Transformer(从XML恢复数据创建XML数据的XSLT)
  4. 我在Java应用程序端执行这些步骤,同时从这些表中检索数据。

    1. 检索XML数据。
    2. 如果XML数据不存在,请在XML恢复数据中搜索它的恢复。
    3. 如果找到XML Recovery,请从Transformers中找到从Recovery表中检索到的XML的相应XSLT。
    4. 使用Transformer XSLT转换恢复XML。
    5. 将结果插入XML数据表。
    6. 返回XML数据。
    7. 众所周知,解析和转换过程是Java应用程序上的高性能成本过程。此场景中还有4个db访问。

      在Oracle DB端进行这些处理有什么缺点吗? Oracle使用非常原生的引擎作为XML解析器,用C编写。我的数据库访问权限只有1.但我不确定将某些字段保留为XMLTYPE的成本以及此用法的缺点。

1 个答案:

答案 0 :(得分:1)

是的,我认为在oracle数据库中这样做会更加优化性能。你有两个选择(假设你有Oracle 11g):

1)创建一个"静态"你的java代码库的入口方法,并使用" loadjava"将其导入oracle db。

http://docs.oracle.com/cd/B28359_01/java.111/b31225/chthree.htm

2)使用oracle内置功能。<​​/ p>

[XMLTYPE.TRANSFORM(myxml, myxsl)][2]