Oracle,一个用户(应用程序连接)多并发会话(多线程连接)

时间:2014-02-06 23:34:06

标签: oracle hibernate enterprise-architect

在普通的企业应用程序中,只有一个用户(在hibernate.xml或其他配置中设置)和多并发连接/多并发会话(其多线程应用程序)。

那么,那些ONE用户的多会话会相互冲突吗?

1 个答案:

答案 0 :(得分:1)

取决于“干涉”的含义。

您的中间层连接池将打开与数据库的多个物理连接。中间层中的会话将从池请求连接,执行一些工作,并将连接返回到池。假设您的连接池足够大,可以处理从您的应用程序同时进行的调用次数(基于会话数,每个会话需要逻辑连接的时间长度,以及“思考时间”到“操作”的分数)时间“在每个会话中”,您将不会因打开连接而遇到争用。

Oracle非常乐意同时在多个会话中运行查询。但显然,一个会话有可能与另一个会话争夺资源。如果两个会话都尝试更新同一行,则它们可能会争用相同的行级锁定。如果您有足够的会话,最终可能会出现CPU或RAM或I / O负担过重的情况,并且一个会话创建的负载会导致另一个会话出现性能问题。 Oracle并不关心哪些Oracle用户参与此类争用 - 如果有10个会话以10个不同的用户身份运行,那么您将有10个会话干扰所有运行为1个用户的可能性相同假设会议正在做同样的事情。