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" 来自第一个实例的缓存执行计划。
我的 Java 应用程序从 JDBC 连接 conn1 触发查询,oracle 将该查询的执行计划存储在其缓存中。如果从不同的 JDBC 连接 conn2 触发相同的查询,Oracle 是否会重用旧查询的缓存执行计划?
换句话说,Oracle 的执行计划缓存是全局的还是基于每个连接创建的?
全实例。如果您使用的是集群 (RAC),那么如果您连接到另一个实例,那么它将不会 "see" 来自第一个实例的缓存执行计划。