Preparedstatement编译时间

时间:2017-11-15 05:09:05

标签: java teradata spring-jdbc jdbctemplate

我使用jdbctemplate.queryForList(String sql, Object... args)方法从teradata中获取结果。有时我发现这种方法比在teradata studio上运行相同的查询需要更多的时间。是因为在Web服务端编译sql?

预准备语句如何编译sql语句以及传递给它的参数&编译需要多长时间?

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据doc
14派生自PreparedStatement。如果您想多次执行Statement个对象,通常会缩短执行时间以使用Statement对象。

PreparedStatement对象的主要特征是,与PreparedStatement对象不同,它在创建时会被赋予一个SQL语句。这样做的好处是,在大多数情况下,此SQL语句会立即发送到DBMS,并在其中进行编译。因此,Statement对象不仅包含SQL语句,还包含已预编译的SQL语句。这意味着当执行PreparedStatement时,DBMS可以只运行PreparedStatement SQL语句而无需先编译它。

如果您想查看PreparedStatement界面,请在日食中选择PreparedStatement,然后按F3

编辑:

响应@Kayaman,运行PreparedStatementPreparedStatement之间没有区别,影响编译时间的因素很多,取决于环境或查询,如果是大量查询或小一。你真的需要仔细看看它为什么需要额外的几秒钟。