Oracle 的执行计划缓存是绑定到连接还是用于所有连接的全局映射?

Is Oracle's execution plan cache tied to connection or it is a global map which is used for all connections?

我的 Java 应用程序从 JDBC 连接 conn1 触发查询,oracle 将该查询的执行计划存储在其缓存中。如果从不同的 JDBC 连接 conn2 触发相同的查询,Oracle 是否会重用旧查询的缓存执行计划?

换句话说,Oracle 的执行计划缓存是全局的还是基于每个连接创建的?

全实例。如果您使用的是集群 (RAC),那么如果您连接到另一个实例,那么它将不会 "see" 来自第一个实例的缓存执行计划。