我想使用连接属性指定要为连接池对象预取的行数,以覆盖默认的行预取大小(10)。
我已经设置了如下所述的连接属性,但是在执行查询时它没有反映。请检查并告诉我们解决方案。
示例代码片段:
String dataSourceJndiName = "TestDataSource";
int oraPrefetchSize = 500;
try {
NamingContext ctx = new NamingContext();
DataSource dataSource =
(DataSource)ctx.getContext().lookup(dataSourceJndiName);
conn = ds.getConnection();
Properties props = new Properties();
props.put("oracle.jdbc.defaultRowPrefetch", oraPrefetchSize);
conn.setClientInfo(props);
} catch(Exception e) {
logger.error("Exception while getting connection object", e);
}
请注意,我已在 Toad 中使用“数据库 -> 监视器 -> SGA 跟踪/优化”选项检查 defaultRowPrefetch 属性是否正常工作。
例如,我观察到执行查询的以下属性:
Rows Processed: 1200
Fetches: 121
由于我已将“oracle.jdbc.defaultRowPrefetch”设置为 500,因此提取次数应为 3。