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

问题描述 投票:0回答:1

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

根据我之前的经验,我确实注意到调用 connect 很慢。重复这样做可能会花费非常昂贵......或者是吗?

oracle performance transactions
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.