성능 향상을 위해 애플리케이션의 왕복을 줄이려고합니다. 많은 혜택을 얻으려면 PreparedStatement
을 사용하고 싶습니다. SQL : 바운드 변수로 문을 일괄 처리하기
이
은Class.forName("..Driver");
Connection connection = DriverManager.getConnection(..);
PreparedStatement statement = connection.prepareStatement("UPDATE Table SET XmlData = ? WHERE SomeGUID = ?; INSERT INTO SomeTable (Col1,Col2) VALUES (?, ?)");
try{
statement.setString(1, "<XmlData></XmlData>");
statement.setString(2, "32ABD5-438B0-..");
statement.setString(3, "ABC");
statement.setString(4, "XYZ");
statement.execute();
connection.commit();
}
catch {
connection.rollback();
}
finally {
statement.close();
connection.close();
}
이 (다시 말하지만, 이것은 실제 코드, 그냥 간단한 예 아니다) .. 내가 .. 생략 세부 사항을 일반화 가지고 올 한 내용의 예입니다
일반적으로 왕복 트래픽을 줄이기 위해 단일 명령문에서 여러 삽입/업데이트 문을 실행하려고합니다. 이것은 효과적인 방법인가요? 아니면 더 받아 들여진 접근 방법이 있습니까?
단일 트랜잭션에 대해 수천 개의 명령문을 사용할 수 있습니다. 단일 문장의 실행 시간 초과를 막기 위해 합리적으로 크기가 조정 된 블록으로 구문을 분할합니다.
여러 DB 공급 업체를 지원할 예정이지만 ANSI SQL을 사용하므로 문제가 발생하지 않습니다. 필요한 경우 DAL 정보를 활용할 수 있습니다. 그래서, 이것은 문제가 아닙니다.
팁/제안 사항?