수고하십니다. 


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

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 38110
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20672
8043 쿼리 질문드립니다. [3] 상어고래 2014.07.18 2596
8042 SQL 서버 기본 데이터 저장 단위인 페이지 관련.. [1] SQL어렵.. 2014.07.17 2603
8041 Openquery Insert문장 사용법 문의 [1] 바람처럼 2014.07.17 2785
8040 메인컴퓨터는 있고 다른컴퓨터에서 로그인이 안됩니다. [4] 고쳐주세요 2014.07.17 2538
» 프로시저에서 자바 라이브러리 호출 가능 여부 & 대용량자료 질문입니다. [2] 커피요쿠르트 2014.07.17 3555
8038 소수점 한자리까지 나오게하려고 하는데... [1] 더따뜻한 2014.07.17 3969
8037 가장많이 사용 되는 프로시저 또는 테이블을 알아보는 방법 [3] 빡빡이 2014.07.16 2810
8036 소수점 1째 자리만 사용한다고 할때 가장 좋은 type? [2] 쌩규 2014.07.16 2937
8035 ROW_NUMBER 사용법 [2] 아싸라비아콜롬비아 2014.07.15 3624
8034 이걸..어찌해야할지..도와주십시요 선배님들!! [2] SQL왕왕초보 2014.07.15 2703
8033 프로시저 조회 결과를 임시 테이블에 입력하는 방법 [1] 강구다.. 2014.07.15 3207
8032 특정정보를 공유하고 별개로도 할 수 있는.. [2] 냥냥 2014.07.15 2452
8031 제품군별 집계 [10] devil5538 2014.07.15 2612
8030 테이블에 있는 쿼리를 실행 할 수 있나요? [3] 군고구마 2014.07.14 2343
8029 2008쿼리 문의 입니다. [1] 천재sizin 2014.07.13 2354
8028 primary Key 값변경 어떻해하면좋을까요 [3] 등빛 2014.07.11 9886
8027 프로시져 속도 질문 합니다. [1] 멋도리 2014.07.11 2705
8026 조회문으로 사업자번호 유효성 검사 하는것을 할려고 하면 어찌해야 하죠?? [3] 아싸라비아콜롬비아 2014.07.11 3155
8025 업데이트 방법 문의드립니다 아수라발발타 2014.07.11 2149
8024 두개의 TABLE을 비교해서 출력하는 문제..도와주세요. [1] 강하늘_275564 2014.07.11 2952





XE Login