在我的项目中,我们正在从我们的C++应用程序调用oracle程序, 由oracle提供的Pro * C/C++库的帮助。当应用程序多次调用数据库过程时,性能是否会受到影响?
我们有一个大的程序,我的想法是将程序拆分为两个模块。但是他们的建议是一次调用这个程序,并且一次执行所有的工作。
我从他们那里得到的原因是它会引起性能影响,因为应用程序与数据库多次交互。
我同意,当应用程序连接数据库,调用过程并最终断开每个过程调用的数据库时,上述情况就会发生。但是,我们真正做的是在启动时创建连接池,并重新使用预连接的数据库连接与数据库进行交互。
我的应用程序:
- 这是
multi-threaded application
,它可以处理大约每秒1000请求与线程池的大小为20,目前为每一个请求,我们与数据库进行通信的4倍。
编辑:
“PLSQL和SQL之间的切换是不是周围的其他方法快得多”。 Q1。这是如何与我的实际问题有关?我的问题是关于将程序分成两个相等的部分。假设我有4个查询在程序中执行,我只是将它分成两个程序a和程序b,每个程序都有两个查询。
“调用PLSQL的pro * c调用性能受到影响”。 Q2。你是指应用程序(pro * C/C++)和数据库(oracle)之间的通信吗?如果是这样,沟通是一个很大的表现?
在你连接的问题tom链接中,“但是不要害怕从PLSQL调用SQL - 这是PLSQL最好的” Q4。在我们从PLSQL中调用SQL的时候,Wheather context switch会发生什么?因为按照上述说法,这似乎没有影响。
您是否测量了它,看看真实世界的影响是什么? –