CBO 테이블이 20여개정도 존재합니다.
CBO 테이블에는 데이터가 각각 7백만건, 5백만건..... 이런식으로 해서 총 2400만건정도 들어있습니다.
이 CBO 테이블의 일부 필드값들을 변경 해야 합니다.
(ex. 01->001)
변경되어지는 필드값은 테이블별로 Key필드인경우도있고, 아닌 경우도 있습니다.
가장 빠르고 안전하게 변경할 수 있는 방법에는 어떤 방법이 있을까요?
(ABAP 프로그램, Oracle SQL 등등 여러가지 방법을 통 틀어서요)
데이터 변경이 시간상으로 반나절 정도만에 완료가 되어야 해서 보다 많은 분들의 의견을 듣고 싶습니다.
댓글 4
-
도도마녀
2009.03.04 06:44
-
보나
2009.03.04 18:19
도도마녀님 답변 감사드립니다.
동일환경에서 아밥프로그램으로의 데이터 변경과 오라클DB단에서의 직접변경에 시간차이가 많이 발생하는지...
ABAP , 오라클에서의 SQL 말고 혹시 다른 방법? 이 있는지 등에 대해서 혹시 기경험하신분이 있다면 경험에 대한 조언을
부탁드리고 싶어서요.
테스트 데이터를 ABAP프로그램으로 변환하는 시간 등은 제가 확인이 가능한데,
오라클에서의 DB 처리부분은 DBA에게 문의를 해야하는데, 이 문의를 하기 전에 전제적으로 ABAP 과 오라클DB 로의 핸들링에
'속도의 차이' 가 존재한다 라는 부분을 제가 정확히 몰라서;; ㅎㅎㅎ;;
-
도도마녀
2009.03.04 21:02
아밥프로그램으로의 데이터 변경과 오라클DB단에서의 직접변경에 시간차이가 많이 발생하는지...
=> open sql를 쓴다고 가정했을때 native sql보다는 한단계를 더 거치기 때문에 update문 같은 경우는
토드나 골든같은 툴로 오라클에서 직접 update하는 것이 약간 더 빠르기는 합니다
하지만 아밥프로그램으로 했을때는 로직으로 업데이트의 진행사항을 확인하실 수 있지만
토드나 골든같은 툴로 했을때는 오랜 시간동안 모래시계만 봐야해서 답답할 수 는 있겠네요...
ABAP , 오라클에서의 SQL 말고 혹시 다른 방법? 이 있는지 등에 대해서
=> 오라클 관련 교육을 많이 들어보았지만... 테이블에 데이터 변경하는데에는 SQL DML문장 말고는
제가 아는 선에서는 없습니다
-
보나
2009.03.04 22:07
명쾌한 답변 감사드립니다.
도도마녀님 덕분에 작업방향을 잡는데 큰 도움이 되었습니다.
좋은 하루 되세요 ^^
테이블 데이터 변경하는데 딱히 특별한 방법이 있나요
백업 잘해두고 아밥이든 오라클로 직접 들어가서 하든 변경하는 방법 뿐이 없지요...
잘못 변경됐으면 언제라도 복구할 수 있도록 백업 백업 백업만 철저히 해주시면 되지요
한가지 팁이라면 아밥프로그램으로 변경하신다면
백업을 오라클 덤프파일로도 받아놓으시고,
백업테이블도 하나 만들어서 백업테이블로 데이터를 카피해 놓고 하시면 나중에 복구하실때 빠르게 복구하실 수 있습니다
예를들어 변경하고자 하는 테이블이 ZHRT0001이라면 ZHRT0001_BACK 테이블을 만들어 놓으시고
프로그램을 아래와 같이 만들어서 ZHRT0001 => ZHRT0001_BACK 쪽으로 테이터 넘겨넣어 주세요
SELECT * FROM ZHRT0001 INTO TABLE IT_0001.
SELECT * FROM ZHRT0001_BACK INTO TABLE IT_0001_BACK.
IF SY-SUBRC = 0.
DELETE ZHRT0001_BACK FROM TABLE IT_0001_BACK.
IF SY-SUBRC = 0.
COMMIT WORK.
INSERT ZHRT0001_BACK FROM TABLE IT_0001.
ENDIF.
ELSE.
INSERT ZHRT0001_BACK FROM TABLE IT_0001.
ENDIF.
나중에 복구하실때는 반대로 하심 되고요