Q&A

  • 인터베이스 데이터삭제를 통한 크기 줄이기
안녕하세여



처음 질문을 올립니다.





인터베이스6.0을 사용하고 있는데요



데이터양이 너무 많아져서 파일크기가 200메가가 넘습니다.



그래서 그런지 처리속도가 굉장히 느립니다.



이걸 데이터를 자르려고 하는데요.



어떻게 해야할까여?



일정 조건을 만족하는 데이터만 옮기려고..



DELETE문으로 삭제하면 파일크기가 줄어들지 않더군요

Sweep을 해도 마찬가지..



답변 부탁드립니다.



좋은 하루 되세요

1  COMMENTS
  • Profile
    델피언 2001.09.04 08:54
    지니TM wrote:

    > 안녕하세여

    >

    > 처음 질문을 올립니다.

    >

    >

    > 인터베이스6.0을 사용하고 있는데요

    >

    > 데이터양이 너무 많아져서 파일크기가 200메가가 넘습니다.

    >

    > 그래서 그런지 처리속도가 굉장히 느립니다.

    >

    > 이걸 데이터를 자르려고 하는데요.

    >

    > 어떻게 해야할까여?

    >

    > 일정 조건을 만족하는 데이터만 옮기려고..

    >

    > DELETE문으로 삭제하면 파일크기가 줄어들지 않더군요

    > Sweep을 해도 마찬가지..

    >

    > 답변 부탁드립니다.

    >

    > 좋은 하루 되세요



    ------------------------------------------------------------



    저도 인터베이스 6.0 오픈소스 받아서 설치하고 운영하는데요. 도움말에서

    보면 스위핑은 커다란 데이터베이스를 물리적인 가베지 컬렉션은 하지 않고

    다만 퍼포먼스만 향상을 시켜주는 것 같아요,



    실제로 큰 데이테베이스에서 모든 릴레션들은 삭제하고서 스윕을 해도 크기는 변하지

    않습니다.



    이를 해결할 방법은 유일하게 데이터베이스 를 백업하고 다시 리스토어 하는 과정을

    실행 하면 됩니다.



    1. 백업 : 현재 데이터베이스가 오픈된 상태에서도 가능합니다.

    DataBase -> Maintenance ->Backup/Restore -> Backup

    DataBase 항목에서 현재의 데이터 베이스명 선택 -> 백업화일에서

    서버, 타겟 알리아스 선택(처음으로 백업을 하면 여기에다가 적당한 별칭을 씁니다!)

    처음 백업하면 아래에 있는 그리드에서 화일이름란에 경로까지 포함한

    예) " C:Int_DBCargoB.GDB " 라고 입력하고

    Size 에는 데이터베이스 생성시 설정했던 페이지 Size 기록



    Option항목에서 Garbage Collection 이 True로 설정되 있는지 점검후



    OK버튼을 누르면 현재의 백업 진행 상황이 창에 표시됩니다.

    (인터베이스 Bin폴더에 있는 Gbak.exe로 실행을 하는 것입니다!!!)



    작업이 끝났으면 한번 실제 디비가 있는 폴더에서 백업디비의 크기와 원본디비의

    크기를 비교해 보세요... 엄청나죠...



    여기서 퀴즈. 백업한 디비의 이름을 원본 디비명으로 변경하면 어떻게 될까요...



    백업한 디비는 바로 연결할 수 없습니다. 왜냐고요... 생각해보세요.. 압축한것에

    바로 접근하면....



    다음으로 할것은 복구죠...



    복구도 DataBase->Maintenance->Backup/Restore-> Restore...

    대충 아시겠죠... 글구요 이전자료에 오버라이트 하기 위해서 Overwrite 옵션은

    선택하고요... 그이전에 현재의 디비는 Disconnecting 되야 합니다.



    다 끝났으면 보세요.. 원래의 크기랑...



    그럼 이만... 즐코하세요...