안녕하세요 현재 PostgreSQl로 쿼리를 만들고 있습니다.
테이블 2개를 join해서 1~6000000(약600만)건을 select한뒤 java를 활용해서가공된 값으로 insert하는 작업을 하고있습니다.
한번에 모든 정보를 조회하긴 힘드니 5만건 단위로 자동 반복하게 진행하고 있는데요
ex) 1~50000건 진행후 50001~100000건 진행 (무한반복)
4650000건까지는 잘 진행이 되었는데 4650001~4700000건 로드가 엄청 오래걸립니다.(돌고있긴한데.. 진행이 안되더군요..)
혹시 몰라서 DB툴로 저 쿼리를 조회해도 오래 걸리는건 마찬가지고, 혹시 몰라서 count로 그 구간의 데이터 건수를 조회했는데 정상적으로 5만건이 나옵니다
DB 공간이 부족한가 확인하고 로컬 메모리가 부족한가 확인하고 아무리 봐도 이유를 잘 모르겠어서 이렇게 질문 드립니다
이렇게 특정 부분에서만 데이터 조회가 느려질수가 있나요?
select 컬럼들... form 테이블_1 left outer join 테이블_2 on 테이블_1.rpt_seq = 테이블_2.orign_ctrl_no where 4650001 <= 테이블_1.row_num and 테이블_1.row_num < 4700001 --where 테이블_1.row_num between 4650001 and 4700001
테이블_1 (약600만건)
테이블_2 (약25만건)
1대다 구조입니다..
PostgreSQl 는 아니고 sql-server 에서 비슷한일이 있었는데.
SELECT시 특정 로우 하나가 걸리면 먹통 되더군요.
결국 야간에 테이블 그대로 복사후 RENAME 해서 해결했었습니다.
진짜 도저히 답이 안보여서 개발서버에 테이블 복사중인데
이제 절반 넘어왔네요 답변 주셔서 감사합니다
-------------------------------------
개발DB로 옮기고 진행하는데 다행히 정상적으로 작동하네요