gpt4 book ai didi

java - 如果我们关闭并重新打开准备好的语句,查询计划是否会重新计算?

转载 作者:行者123 更新时间:2023-12-01 15:34:30 26 4
gpt4 key购买 nike

需要了解其工作原理

我有以下代码

  public static void updateOrdersPrepared(int productId , String productName){

Connection con = getConnection();

try {
pstmt = con.prepareStatement
("update Orders set productname = ? where Prod_Id = ?");

pstmt.setInt(2, productId);
pstmt.setString(1, productName);
pstmt.executeUpdate();
pstmt.close();
con.close();

} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
JOptionPane.showMessageDialog(null,"Data Updated into Orders Table");
}

现在,如果此方法被调用“N”次,准备好的语句的查询计划将被计算“N”次还是仅计算一次?

在这种情况下使用准备好的语句是否有真正的优势?

最佳答案

这取决于您所针对的 RDBMS。

SQL Server 能够缓存语句 "update Orders set productname = ? where Prod_Id = ?" 的参数化查询计划所以会有一个好处。然而,这是一个如此简单的查询,其好处可能会很小。

您应该根据您的特定情况进行测量(您的服务器是 CPU 限制还是 I/O 限制?通常是后者)。

正如你所知。使用PreparedStatement的真正优点是准备一次,然后使用不同的参数集调用多次。

关于java - 如果我们关闭并重新打开准备好的语句,查询计划是否会重新计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com