在oracle中使用java的性能开销

时间:2011-07-27 08:25:27

标签: java performance oracle plsql

向大家致意,

几天前我遇到了在oracle中使用java的功能。从那以后我一直在想 在java中编写静态方法替换常规PL / SQL逻辑的可能性。

因为我有足够的经验 java加上它提供的丰富库,我很想写java方法而不是常规的PL / SQL。会这样吗? 一个好的做法?这样做会有很多性能开销吗?提前谢谢。

3 个答案:

答案 0 :(得分:10)

您决定将PL / SQL转换为Java代码会涉及到开销。

虽然我不太相信将业务逻辑放入PL / SQL,但我看到有太多公司这样做,包括我自己的。

执行此操作的“性能考虑因素”不是使用static方法。例如,您可能需要声明一个arraylist来对值进行排序,并根据值从另一个查询中的数据库中检索更多结果。

IMO,我会将业务逻辑放在我的应用程序中,而不是投资于PL / SQL。这也有助于确保DBMS的可移植性而不是买入。

答案 1 :(得分:6)

取决于! 它们是不同目的的两种语言

您想做什么类型的操作

  • 每个接触数据层的操作(我知道这是有争议的)
  • 使用大数据处理(批量操作)的大规模SQL操作
  • 管理任何类型的交易
  • 可以在Pl / Sql
  • 中轻松完成工作
  • 您是否正在编写与Sql数据类型严格关联的代码?
  • 监视代码和从属数据库对象之间的关系

在这种情况下,我相信 Pl / SQL是性能的最佳选择

注意,我写了PL / SQL:

  • PL作为程序语言(第二选择)
  • SQL作为数据查询语言(第一选择)

这两种语言的强大功能,严格地与Oracle相关联,使您可以编写以更快>方式访问Oracle中的数据的应用程序,并且比任何其他语言都更容易。


你需要:

  • 操作系统操作
  • 目录和文件操作
  • 大量邮件操作
  • 网络运营
  • 您不能做的其他事情:
    • SQL(第一选择)
    • PL(第二选择)
  • 编写代码以在 Enterprise Java Beans
  • 等架构中重用
  • 编写代码以重用其他地方

在这种情况下,我认为 Java是更好的选择,是Oracle的第三选择。


但是我不是在重新发明轮子,这些信息很容易通过像Tom Kyte等 Oracle专家来访问和证明。

只是搜索的一些有用链接:

答案 2 :(得分:2)

我认为将CRUD操作存储为存储过程是可以接受的。如果您使用任何ORM框架,则可以映射SP。通常,数据库是应用程序中更稳定的部分。应用程序可能会被重构或替换,但数据库不会更改(这只是我的经验)。