> 데이터 베이스 > Oracle > 오라클에서 데이터 공간을 삭제하는 방법

오라클에서 데이터 공간을 삭제하는 방법

PHPz
풀어 주다: 2023-04-04 14:06:42
원래의
1333명이 탐색했습니다.

기업 데이터가 지속적으로 증가함에 따라 데이터 관리는 조직과 기업이 직면하고 해결해야 하는 주요 문제가 되었습니다. 그 중 하나는 데이터를 삭제하고 공간을 회수하는 방법입니다. Oracle은 일반적인 관계형 데이터베이스 관리 시스템으로서 데이터 삭제 및 공간 회수 측면에서 몇 가지 강력한 기능과 도구를 제공하며 이에 대해 아래에서 자세히 소개합니다.

1. 오라클에서 데이터 공간을 삭제하는 개념

오라클에서 데이터 공간을 삭제한다는 것은 더 이상 필요하지 않은 테이블, 인덱스, 제약 조건 및 기타 객체가 차지하는 공간을 삭제하는 것을 일반적으로 두 가지 방법으로 나눕니다. 그리고 논리적 삭제.

물리적 삭제는 디스크에서 직접 데이터를 물리적으로 삭제하여 복구할 수 없는 반면, 논리적 삭제는 데이터를 "삭제"로 표시하고 디스크에서 직접 삭제하지 않는 방식으로, 이때 복원 작업을 통해 데이터를 복구할 수 있습니다. .

Oracle에서는 다음과 같은 삭제 문을 사용하여 논리적 삭제를 수행할 수 있습니다.

DELETE FROM table_name WHERE criteria;
로그인 후 복사

물리적 삭제에는 다음과 같은 TRUNCATE TABLE 문을 사용해야 합니다.

TRUNCATE TABLE table_name;
로그인 후 복사

TRUNCATE TABLE은 DELETE FROM과 다릅니다. 그러면 테이블이 재활용됩니다. 데이터가 직접 지워지는 대신 재사용을 기다리고 있습니다. 따라서 어떤 경우에는 TRUNCATE TABLE이 더 효율적인 방법입니다.

2. 오라클의 데이터 공간 삭제 원칙

데이터 공간 삭제 시 다음 원칙을 따라야 합니다.

  1. 트랜잭션 제출

데이터를 삭제하기 전에 현재 세션의 트랜잭션을 제출하여 데이터 무결성 변경 사항이 적용되며 롤백되지 않습니다.

  1. Disable Constraints

테이블을 삭제할 때 외래 키와 같은 제약 조건이 있는지 고려해야 합니다. 이러한 제약 조건이 있는 경우 먼저 비활성화해야 합니다. 그렇지 않으면 삭제가 실패합니다. 제약 조건을 비활성화하는 문은 다음과 같습니다.

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
로그인 후 복사
  1. Backup data

삭제 작업을 수행하기 전에 데이터 손실을 방지하기 위해 데이터를 백업하는 것이 가장 좋습니다.

  1. 일괄 삭제

많은 양의 데이터를 삭제하려면 대량의 데이터를 한 번에 삭제하여 발생하는 성능 문제를 피하기 위해 일괄 삭제하는 것이 가장 좋습니다.

3. Oracle에서 데이터 공간을 삭제하는 방법

DELETE FROM 및 TRUNCATE TABLE 문을 사용하는 것 외에도 Oracle은 데이터 공간을 삭제하는 몇 가지 강력한 기능과 도구를 아래에서 하나씩 소개합니다. Flashback Drop

  1. Flashback Drop은 Oracle 10g에 도입된 개념으로, 데이터 파일을 유지하면서 삭제 작업을 실행 취소할 수 있습니다. 다음 명령문을 사용하여 Flashback Drop을 활성화할 수 있습니다.
  2. ALTER SYSTEM SET recyclebin=on;
    로그인 후 복사
Flashback Drop을 사용하면 DELETE 또는 TRUNCATE 작업을 수행하고 데이터가 휴지통으로 이동되면 다음 명령문을 사용하여 이를 복원할 수 있습니다.

FLASHBACK TABLE table_name TO BEFORE DROP;
로그인 후 복사

Purge

  1. Purge는 휴지통 개체를 지우는 데 사용되는 도구입니다.
  2. PURGE RECYCLEBIN;
    로그인 후 복사
특정 개체를 삭제해야 하는 경우 다음 문을 사용할 수 있습니다.

PURGE TABLE table_name;
로그인 후 복사

테이블 파티션

  1. 오라클 테이블 파티션은 지정된 전략에 따라 테이블을 여러 부분으로 나누는 것입니다. 각 부분은 데이터를 독립적으로 관리하고 독립적으로 지울 수 있습니다. 테이블 파티셔닝은 데이터베이스 성능과 안정성을 향상시킬 수 있습니다. 삭제 시 파티션을 기준으로 데이터를 제어할 수 있습니다.

파티션 테이블을 재귀적으로 자동 삭제

  1. 파티션 테이블을 삭제하려면 각 파티션을 하나씩 삭제해야 하는데 이는 매우 지루합니다. 따라서 Oracle은 분할된 테이블의 자동 재귀 삭제 기능을 도입했습니다. 파티션 테이블 생성 시 다음과 같이 ON DELETE CASCADE 옵션을 지정할 수 있습니다.
  2. CREATE TABLE test_table (  
        id INT,
        created_at DATE,
        data VARCHAR2(5000)
    )
    PARTITION BY RANGE (created_at)
    INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
    (
        PARTITION p_initial VALUES LESS THAN (TO_DATE('01-01-2022','DD-MM-YYYY'))
    );
    로그인 후 복사
다음 명령문을 실행하면 모든 파티션이 자동으로 삭제됩니다.

DELETE FROM test_table WHERE created_at < TO_DATE('01-01-2021', 'DD-MM-YYYY');
로그인 후 복사
4. 결론

Oracle 데이터 공간 삭제는 필수입니다. 기업 데이터 관리를 위해 시스템 병목 현상을 줄이고 시스템 성능을 향상시키는 데 매우 중요하며 큰 역할을 합니다. 이 기사의 소개를 통해 독자는 Oracle 데이터베이스의 공간 삭제 원칙과 방법을 익힐 수 있으며 실제 작업에 대한 참조를 제공합니다. 데이터 공간을 삭제하기 전에 주의하고 백업하고 작업 결과를 이해해야 한다는 점에 유의해야 합니다.

위 내용은 오라클에서 데이터 공간을 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿