数据库可以进行调节来做语句缓冲. 通常包含一些类型的语句缓冲. 缓冲使用语句 本身作为要害 字, 访问方案和相应的语句存储在缓冲区中. 这样就答应数据库引擎 对以前执行过的语句所使用 的访问方案进行重用. 举个例子来说, 假如我们向数据 库发送这样一条语句 "select a, b from t where c = 2", 计算好的访问方案就放入缓冲 区了. 假如我们以后再使用同样的语 句, 数据库就能重用以前的访问方案, 这样就 能节省 CPU.
但是要注重, 整条语句是一个要害字. 例如, 假如我们后来发送的语句是 "select a,b from t where c = 3", 那么就不会找出以前的访问方案. 因为 "c=3" 和 "c=2" 是不一 样的. 所以, 例如:
For(int I = 0; I < 1000; ++I) { PreparedStatement ps = conn.prepareStatement("select a,b from t where c = " + I); ResultSet rs = Ps.executeQuery(); Rs.close(); Ps.close(); }
PreparedStatement ps = conn.prepareStatement("select a,b from t where c = ?"); For(int I = 0; I < 1000; ++I) { ps.setInt(1, I); ResultSet rs = ps.executeQuery(); Rs.close(); } ps.close();