performance - 每个事务的连接/断开连接的 Oracle 性能

标签 performance oracle connect

目前正在尝试优化一些代码,并注意到在每个事务之前都会进行连接,并在事务结束时调用断开连接。

根据我之前的经验,我确实注意到调用 connect 很慢。重复执行此操作可能成本非常高...或者是吗?

最佳答案

是的,如果您实际上为每个事务创建和拆除物理连接,那么成本可能会很高,除非您有非常长时间运行的事务。如果您的事务是一百万行的批量加载,则打开和关闭连接的成本可能相当小。另一方面,如果您的事务由表中的单行插入组成,则您的绝大多数时间将花费在打开和关闭连接上。

然而,大多数时候,您有一个三层应用程序,其中中间层维护一个连接池,当中间层代码打开和关闭连接时,它们实际上是在逻辑连接上操作,而不是在逻辑连接上操作。物理连接。打开连接从池中获取连接,业务层执行事务,然后关闭连接只是将连接返回到池中。从数据库的角度来看,没有打开或关闭任何物理连接。如果您实际上正在使用池中的连接,则在每个事务上打开和关闭连接是完全正常的,并且假设您的连接池大小合理,则不会产生太多开销。

关于performance - 每个事务的连接/断开连接的 Oracle 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113075/

相关文章:

java - 怎么这么快(背后的算法或逻辑)

oracle - 对象类型中 %ROWTYPE 的解决方法

ios - 如何与Wifi Camera iOS连接

c++ - 当 ssh 工作正常时,为什么::connect() 返回 EHOSTUNREACH?

c++ - 不同线程上的动态分配会减慢我的主处理线程吗?

performance - Elasticsearch:数值数据类型,可在整数上获得最佳性能

SQL - 如果行数大于则插入

java - 在 onLowMemory 方法中调用 Runtime.gc()

java - 重复方法调用 VS 局部变量

php - 无法通过 ubuntu 12 中的 CAKE PHP 连接到 MSSQL 数据库