수고하십니다. 


현재 상황을 간략히 설명드리면

db : sql server 2005

개발언어 : java , spring mvc

서비스 : 웹서비스 


처리 로직

계단식 로직입니다. 1단계에서 처리되고 1차 db 저장

2단계에서는 1단계 자료를 가져와서 처리후 2차 db 저장.

..

이런식으로 지정한 단계까지 루프를 돕니다. 


처리라하면. 외부라이브러리를 통해 결과를 받아서 이런저런 가공하고 db에 넣을 자료를 생성하는 과정입니다. 


문제가 이전 단계에서 생성된 자료를 바탕으로 현재 단계에서 처리를 하므로 생성된 자료 수가 기하급수적으로 늘어납니다.


예를 들어 보면

1단계에서 아이템을 한개 받아서 처리를 통해 1차로 저장된 자료가 100개라 하면

2단계에서는 1단계에서 생성된 100개를 조회해와서 (select) 다시 같은 처리를 하므로 100*100개가 저장이 됩니다. (insert)

단계 n이 처리될 때마다 100^n 으로 자료가 증가합니다. 

당연한이야기지만.. 처리해야할 건수가 많으니 시간이 오래걸리지요.

이 시간을 최대한 단축하고 싶습니다. ㅠㅠ


저장처리는 (insert into .. select . . .  union all select union  all .. 해서 max 2000 row )가 한번에 실행되게 배치처리되어 있습니다. 


이게 외부라이브러리에서 던져주는 결과값을 이용해야하고, 이전 단계를 거친 자료를 사용해야하한다는 제약사항이 있어.. 

현재 로직은 변경이 불가능합니다. 


그래서 드는 생각은 db 처리 시간을 최대한 줄여보자입니다. 


sql server에서 자바 라이브러리를 호출 할 수 있다는 가정하에..

현재 자바에서 처리되는 로직을 sql server의 프로시저로 변환이 가능하다면 db 처리 시간이 많이 줄어들지 않을까 

생각이 되었습니다. 


그래서 질문입니다. 

1.sql server 프로시저에서 자바라이브러리 호출이 가능할까요? 

2.가능하다면 프로시저에서 많게는 100^10 (자리수 셋기도 힘드네요..) 처리가 가능할까요?


그리고.. 접근 방법부터 잘못되었다는 생각이 들기도해서요.. 

어차리 대량의 자료가 처리될 것이므로.. 

배치 처리로 가야하는게 맞을거 같다는 생각도 듭니다. 


여러 의견 주시면 감사하겠습니다. 


한 10단계까지 돌리고 싶은데.. 100^10 ..  ㅜㅜ


아.. db를 변경할 생각은 있습니다. 오라클로는 안될거 같구요.

mysql이나 sql server 버전 업.. 은 가능할 것 같습니다. 


참고로 db에 저장되는 자료는 그렇게 크지 않습니다. 칼럼 6개에 5~600자 이하 varchar 자료들입니다. 

더 필요한 정보 있으시면 댓글에 말씀해주셔요. 



그럼 부탁드립니다.

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 19926
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12111
8058 콤마 분리 검색이 궁금합니다. [2] 죠리퐁 2014.07.24 3104
8057 중복찾기ㅜ_ㅜ [2] 마힐링 2014.07.24 2737
8056 AUTO SHRINK 작동 후 이상 증상 [4] 헌이 2014.07.23 3162
8055 컬럼값 치환 문제 [1] 김락중_278785 2014.07.23 2644
8054 db파일삭제 [7] 비홍 2014.07.23 2785
8053 1 : 다 테이블 조인시 페이징 처리 질문드립니다. [1] 김락중_278785 2014.07.23 2838
8052 초보적인질문 프로시저 작성할때 begin ..... end 사용용도... [4] 아싸라비아콜롬비아 2014.07.23 3640
8051 테이블의 특정 열이 포함된 프로시저를 찾는방법 [2] 왕만두와우동 2014.07.23 2374
8050 메인컴퓨터는 있고 다른컴퓨터에서 로그인이 안됩니다. [5] 고쳐주세요 2014.07.23 3190
8049 등록된 서버 프로시저 호출 질문입니다. [7] 군고구마 2014.07.22 2868
8048 Select 했을 경우 2만건의 데이터를 2천건씩 나누는 방법이 있나요? [2] 바보쿠우 2014.07.21 4121
8047 전문검색 문의합니다. (영단어 오류) 올레소 2014.07.21 2649
8046 SQL UNION에서 대해 질문드려요~ [1] halonamomo 2014.07.21 2596
8045 쿼리 질문드립니다. [2] 흑흑 2014.07.18 2267
8044 SQL 데이터 파일의 경우 shrinkfile을 하면 안되는건가요? [8] 나는짱이야 2014.07.18 3046
8043 쿼리 질문드립니다. [3] 상어고래 2014.07.18 2550
8042 SQL 서버 기본 데이터 저장 단위인 페이지 관련.. [1] SQL어렵.. 2014.07.17 2577
8041 Openquery Insert문장 사용법 문의 [1] 바람처럼 2014.07.17 2759
8040 메인컴퓨터는 있고 다른컴퓨터에서 로그인이 안됩니다. [4] 고쳐주세요 2014.07.17 2515
» 프로시저에서 자바 라이브러리 호출 가능 여부 & 대용량자료 질문입니다. [2] 커피요쿠르트 2014.07.17 3523





XE Login