有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何准备语句提高性能

我遇到了下面的语句,它讲述了我们通过JDBC PreparedStatement类获得的性能改进

If you submit a new, full SQL statement for every query or update to the database, the database has to parse the SQL and for queries create a query plan. By reusing an existing PreparedStatement you can reuse both the SQL parsing and query plan for subsequent queries. This speeds up query execution, by decreasing the parsing and query planning overhead of each execution.

假设我正在创建语句并提供不同的值,同时运行如下查询:

String sql = "update people set firstname=? , lastname=? where id=?";

PreparedStatement preparedStatement =
        connection.prepareStatement(sql);

preparedStatement.setString(1, "Gary");
preparedStatement.setString(2, "Larson");
preparedStatement.setLong  (3, 123);

int rowsAffected = preparedStatement.executeUpdate();

preparedStatement.setString(1, "Stan");
preparedStatement.setString(2, "Lee");
preparedStatement.setLong  (3, 456);

int rowsAffected = preparedStatement.executeUpdate();

然后,我仍然会获得性能优势,因为我正在尝试设置不同的值,这样我就可以确定生成的最终查询是基于值更改的

你能确切地解释一下我们什么时候获得绩效福利吗?这些值也应该相同吗


共 (0) 个答案