[DBeaver] java heap space 문제

devAnderson·2022년 10월 4일
0

TIL

목록 보기
97/106

1. 발단

DBeaver에서 테이블을 import하려고 시도하던 도중, heap 스페이스가 부족하다는 문구와 함께 가져오는 것이 실패하였다.

말 그대로, 연산 처리를 위한 heap 영역이 부족하다는 소리이므로, 해당 설정을 변경하여야 하였다.



2. 방법

우선, 실질적인 공간 자체부터 키워줘야 한다.
경로는 mac 기준으로 "/Application/DBeaver.app/Contents/Eclipse이다.

나는 vscode 상에서 보는게 더 편해서 저렇게 dbeaver.ini을 열었지만, vi로 열어도 무방하다.

거기서 위에 보이는 옵션 중에

  • xms : 요청 처리에 대해 쓸 최소 메모리 공간량
  • xmx : 요청 처리에 대해 쓸 최대 메모리 공간량

이다. 나는 수G 짜리 테이블을 모셔와야 했기 때문에 8기가정도로 넉넉하게 설정하였다.


저것 뿐만 아니라, import를 할 때에 옵션도 설정해줘야 좋다.

위는 테이블을 가져올 때에 옵션중 하나인데, 너무 대충 보고 넘겼던 것 같다.

그 중에서 "Fetch size : 3000" 으로 되있는 부분이 보일 것이다.

원래 기본 값은 10000으로 되어있는데, 이 의미는 한번에 1만개의 데이터를 가져와서 처리한다는 뜻이 된다.

되도록이면 연산할 공간이 넘치지 않게 한번에 많은 데이터를 불러와 처리하지 않는 것이 좋기 때문에 적절하게 3개씩 들고오도록 조절했다.

거기에 더불어,

다음번째를 누르면 나오는 장면이다.

여기에 중간에 보면 "Do commit after row insert: 5000" 이라는 부분이 보일 것이다.

원래 값도 여기도 1만인 것으로 기억하는데, 이것이 의미하는 바는 다음과 같다.

"1만개의 데이터가 처리될 때마다, 실제 데이터베이스 반영을 1만개씩 하겠다" 는 소리이다.

이 반영할 양 역시 너무 많으면 DBeaver가 힘들어하므로, 줄여준다.

설정을 변경한 이후 import를 해올 때에는 수기가짜리 테이블도 넉넉하게 들고와서 처리되는 것을 확인할 수 있었다.



결론

매번 데이터베이스를 건들 때마다 어려워하는 내 자신을 극복하고, 상세히 옵션도 읽으면서 진행해야 하겠다는 생각을 하게 되는 계기가 되었다.

profile
자라나라 프론트엔드 개발새싹!

0개의 댓글