1. 避免硬解析 — 使用预备语句(JDBC里使用PreparedStatement)
2. 避免软解析 — 重用预备语句(JDBC里用完PreparedStatement后并不关闭,下次查数据库时还用这个对象)
3. 客户端语句缓存 — 重用游标(JDBC3.0 与 连接池共用时,JDBC会透明地替你缓存)
有时候你可能无权修改调用SQL的代码(比如这个代码处于二进制JAR包中),这时就只能在Oracle数据库服务器端作文章了
1. 打开“游标共享” — 数据库引擎会自动将字面量替换成绑定变量,避免硬解析。缺点是这个东西有BUG
2. 打开“服务器端语句缓存”