어떻게 자바 jdbc 로 데이터베이스 시트 에 빅 데 이 터 를 삽입 합 니까?

jvm:-Xmx1024m
size=1000000,삽입 에 성공 할 수 있 습 니 다.
만약 size 를 위해 수량 급 을 하나 더 늘린다 면,아니면 OutOf Memory Error 입 니까?이 때 는 메모리 가 더 이상 분 배 를 늘 리 기 가 쉽 지 않 습 니 다.
대량 처 리 는 원래 성능 을 향상 시 키 기 위해 서 였 으 나 너무 큰 데 이 터 를 제출 하 는 것 은 쌓 인 팽창 으로 인해 쌓 인 주소 지정 은 오히려 성능 이 떨 어 질 수 있다.
Prepared Statement 에 executeBatch 방법 을 추가 하면 더욱 빠 를 수 있 습 니 다.주로 sql 파일 을 미리 컴 파일 하 는 횟수 를 높이 고 효율 을 높이 려 고 합 니 다.
만약 에 사무 처 리 를 위해 서 라면 변 칙 적 인 방법 으로 임시 표를 만 들 고 데 이 터 를 가 져 올 수 있 습 니까?아니면 addBatch 를 사용 할 수 있 습 니까?예 를 들 어 100 개 마다 일괄 적 으로 사용 할 수 있 습 니 다.
그리고 다른 표 에 성공 적 인 로 고 를 모두 가 져 왔 는 지 기록 하 는 기록 이 있 습 니 다.
기본 적 인 사 고 는 두 단락 을 이용 하여 이론 을 제출 하 는 것 이다.
------------------------------

public class App {
public static void main(String[] args) throws Exception {
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE", "marshal", "password");
PreparedStatement preparedStatement = connection
.prepareStatement("insert into addbatch_test(id,name) values(?,?)");

int size = 1000000;

for (int i = 0; i < size; i++) {
preparedStatement.setInt(1, i);
preparedStatement.setString(2, "n" + i);
preparedStatement.addBatch();
}

preparedStatement.executeBatch();

preparedStatement.close();
connection.close();
}
}

좋은 웹페이지 즐겨찾기