在我的工作环境中,始终存在着“应用服务层中的所有事情”与“在数据库程序中做所有事情”的争论。应用程序有多昂贵 - > DB调用? (即Java JDBC - > Oracle)?
我得到的是让应用程序服务器和数据库通信太频繁是一个相当昂贵的操作。我的问题是 - 它有多昂贵?
假设我们有这个例子 - 我在我的Java应用程序中有一个用户列表,我需要将一个特定的属性绑定到它们中的每一个。假设有20个用户和20个属性要存储。使用参数(employee_id,attribute_value)对Oracle过程进行20次调用而不是进行1次调用,并且一次发送所有employee_id及其匹配的attribute_values,要花多少钱?
编辑:
好吧,也许我没有明确说明我的情况 - 我会“dumbify”有点:)
如何更昂贵的是它使用n调用一个Oracle过程中插入1次,而不是1次调用n次插入的Oracle过程(其中n次插入基本上循环1次插入n次)?在n次调用中而不是1次执行它的原因是,对于新手来说,在Java中编写循环更容易,该循环使用简单数据类型作为输入对象(例如integer,varchar2等)执行n次过程调用,而不是思考一种将数组从Java传递给Oracle的方法。
你是基准测量还是测量它?它可能取决于你的特定系统(例如数据库服务器与应用程序在同一台机器上)! – 2012-02-22 08:50:11
严,没有。我们正在测量我们的HTTP响应持续时间,但除此之外,我认为我们没有任何统计数据。 另外,我们在Tomcat 5.5上运行基于Spring的Java Web应用程序,使用Oracle JDBC驱动程序连接到Oracle 10数据库。不幸的是,除了应用程序和数据库在不同的机器上这一事实外,我不太了解其他技术方面的很多帮助。 – eagerMoose 2012-02-22 09:17:19