DB

[Database]Oralce Shirink

파주상남자의 오답노트 ㅣ 2025. 3. 5. 13:38

반응형

Oracle에서 SHRINK는 데이터베이스 테이블이나 인덱스에서 사용하지 않는 공간을 줄여주는 기능입니다.

테이블이나 인덱스에 삭제된 데이터가 많아지면, 그 삭제된 데이터가 차지하던 공간이 비어 있게 됩니다.

하지만 이 비어 있는 공간은 자동으로 줄어들지 않기 때문에, 테이블의 크기는 그대로 유지됩니다.

SHRINK 명령어는 이런 비어 있는 공간을 줄여서 테이블이나 인덱스의 실제 크기를 줄여줍니다.

이를 통해 디스크 공간을 절약할 수 있고, 일부 경우에는 성능도 개선될 수 있습니다.

사용 방법:

sql

ALTER TABLE 테이블_이름 SHRINK SPACE;

이 명령어를 실행하면 Oracle이 자동으로 비어 있는 공간을 찾아 테이블 크기를 줄입니다.

만약 테이블에서 특정 컬럼에 인덱스가 있다면, CASCADE 옵션을 추가하여 해당 인덱스도 함께 축소할 수 있습니다.

sql

ALTER TABLE 테이블_이름 SHRINK SPACE CASCADE;

주의사항:

  • SHRINK 작업은 테이블을 잠글 수 있기 때문에 운영 중인 데이터베이스에서는 주의해서 사용해야 합니다.
  • 대용량 테이블의 경우 SHRINK 작업이 오래 걸릴 수 있습니다.
  • SHRINK는 세그먼트 관리가 "AUTO"로 설정된 테이블에서만 사용
반응형