2012-02-02 2 views
0

는이 메서드를 호출하면 내가 다음 코드 조각준비된 문을 닫고 다시 열면 쿼리 계획이 다시 계산됩니까?

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'번 또는 단 한번?

그런 시나리오에서 준비된 문을 사용하면 실질적인 이점이 있습니까?

답변

1

대상이되는 RDBMS에 따라 다릅니다.

SQL Server는 문 "update Orders set productname = ? where Prod_Id = ?"에 대한 매개 변수화 된 쿼리 계획을 캐시 할 수 있으므로 이점이 있습니다. 그러나 이점은 매우 작을 것 같은 간단한 쿼리입니다.

특정 상황에서 측정해야합니다 (서버 CPU 경계 또는 I/O 경계? 일반적으로 후자 임).

알고 계십니까? PreparedStatement를 사용하면 (자), 한 번 준비해두면, 다른 파라미터 세트로 여러 번 호출 할 수 있습니다.

+0

이 시나리오에서 준비된 문 대신 일반 문을 사용하면 어떤 차이가 있습니까? – Rocky

+0

일부 성능 측정을 수행해야합니다. –

관련 문제