사용하지 않는 테이블을 정리하고 싶습니다. 0 4 2,418

by 짱짱 [2009.02.04 11:07:41]


2년동안 쉬다가 재취업했습니다.

유지보수 업무는 처음이고 출근 2틀째입니다. ^^;

예전 기억들이 가물가물하네요. ㅎㅎㅎ

현재 db 구조를 살펴보니 대충 봐도 엉망이네요... ㅡㅡ;

업무 인수인계도 안되었고 혼자 뒤져봐야하는 상황이구요.

정규화 작업을 해야할거 같은데....

먼저 사용하지 않는 테이블(테스트용)들이 많이 존재하는거 같은데, 혹시 테이블 접근(조회) 시점을 알 수 있는 쿼리가 있을까요?

혹시나해서 user_tables를 뒤져봤는데 여기선 알수 없을거 같고....

효율적인 방법이 있을까요?

 

by 야매 [2009.02.04 11:28:09]
테이블이 한두개가 아닐텐데요...
제 생각엔 library cache를 뒤져야 할것같은데
v$sqlarea에서 parse_calls나 execustions 컬럼에 조건을 줘서
해당 쿼리(sql_text)를 찾은 다음 그쿼리에서 사용하는 테이블들을..하나하나..

by 웅 [2009.02.04 11:36:31]
글쎄요..좀 비관적인데요..(노가다가 되실듯..)
관련app관련한 CRUD메트릭스에 대한 작업이 먼저 선행되야 정확히 뽑을 수 있지 않을까요?
년배치월배치같은 일시사용을 하는 프로그램에서 사용하는 프로그램은 SGA나 트레이스에서도 뽑기 힘들테니까요.
(app에서 스크립트를 뽑아주는 툴이 있다고 들었는데..)

by 짱짱 [2009.02.04 13:30:27]
테이블 297개에요. ㅎㅎ
흠...... v$sqlarea를 참조하는게 나을듯하네요.
머릿속에서는 프로시져를 만들어 어케하면 굴려지기는하는데, 정확하게 나오진 않을듯하고....
무식하면 손발이 고생한다고 한번 해봐야겠네요. ㅋ
야매님, 웅님 감사합니다.... ^^

by 현 [2009.02.04 14:02:12]
제일 확실한 방법은 웅님 말씀처럼 관련 app의 sql을 모두 뒤지시면 가장 좋을 듯 합니다.
297개면 그리 큰 사이트는 아닌듯 한데,
app의 sql을 모두 뽑아서 엑셀에 정리해 놓고 비교해 보는거죠.
혹시 그 작업이 끝나고 날릴려고 하실때 그냥 날려 버리지 마시고 한동안 해당 테이블을 rename 해 놓으세요...
못보고 놓친 테이블이 있을지 모르니까 rename 되어 있으면 appl에서 에러가 나면 그때 바로 복구해 주면 되니까요..

그리고 모든 일이 다 그렇듯이 백업은 반드시 해 놓고 하셔야 합니다...
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입