programing

Oracle에서 삭제 및 삭제 간의 차이

lastmoon 2023. 7. 6. 22:30
반응형

Oracle에서 삭제 및 삭제 간의 차이

Oracle Database를 사용하고 있는데 Drop 및 Purge Commands에 대해 조금 혼란스럽습니다.사실 저는 둘 다 같은 일을 합니다.데이터베이스에서 스키마가 있는 테이블을 제거합니다.이 두 가지의 주요 차이점은 무엇입니까?

  1. 테이블 이름을 삭제합니다.
  2. 테이블 이름 삭제;

일반적으로 테이블이 삭제되면 테이블이 휴지통(Oracle 10g 기준)으로 이동됩니다.그러나 제거 한정자도 지정된 경우 테이블은 복구할 수 없는(전체적으로) 데이터베이스에서 삭제됩니다.

Oracle Database 10g은 테이블 삭제를 위한 새로운 기능을 도입했습니다.테이블을 삭제해도 데이터베이스는 테이블과 연결된 공간을 즉시 해제하지 않습니다.대신 데이터베이스는 테이블 이름을 변경하여 휴지통에 넣습니다. 나중에 테이블을 떨어뜨린 경우 테이블을 플래시백 테이블 문으로 복구할 수 있습니다.DROP TABLE 문을 실행할 때 테이블과 연결된 공간을 즉시 해제하려면 다음과 같이 PURGE 절을 포함하십시오. DROP TABLE 직원을 PURGE; 테이블을 삭제하고 한 번의 단계로 관련된 공간을 해제하려면 PURGE만 지정하십시오.PURGE를 지정하면 데이터베이스는 테이블과 테이블의 종속 개체를 휴지통에 넣지 않습니다.참고: PURGE 절이 있는 DROP TABLE 문은 롤백할 수 없으며 PURGE 절이 있는 테이블을 삭제하면 테이블을 복구할 수 없습니다.이 기능은 이전 릴리스에서는 사용할 수 없었습니다.

문의처 기사 링크: http://asktom.oracle.com/pls/asktom/f?p=100:11:0 ::::P11_QUESTION_ID:32543538041420

오라클10에서는 기본적으로 모든 테이블이 휴지통에 들어갑니다. 여기서 테이블을 제거할 수 있습니다.제거를 사용하면 기본적으로 휴지통 부분을 건너뛰고 작업을 실행 취소하는 옵션 없이 테이블을 놓습니다.

SQL>drop table table_name;

이 명령은 table_name이라는 테이블을 삭제하지만 내부적으로는 오라클의 휴지통으로 이동합니다(Windows OS에서 키를 사용하여 파일/폴더를 삭제하는 것과 비슷합니다).
이점:
필요한 경우 위의 삭제된 테이블을 복원할 수 있습니다.
단점:
여전히 메모리의 일부를 차지합니다.

SQL>drop table table_name purge;

이 명령은 데이터베이스에서 table_name 테이블을 완전히 삭제합니다(Windows OS에서 + 키를 사용하여 파일/폴더를 삭제하는 것과 비슷합니다).

위의 장점과 단점은 반대입니다.

아래 문장은 테이블을 떨어뜨려 휴지통에 넣습니다.

드롭 테이블 emp_new;

아래 문장은 테이블을 떨어뜨리고 휴지통에서 꺼냅니다.

드롭 테이블 emp_new 퍼지;

@Randy 댓글을 보면 분명합니다. 덧붙이자면:

테이블 이름 삭제:

없이.purge 또는 USER_RECycleBIN에 수 . 이은 RecycleB 할 수 .IN 또는 USER_RECYCLBIN에 있을 수 있으며 명령을 사용하여 복원할 수 있습니다.FLASHBACK이는 Windows 바탕 화면에서 삭제하는 파일과 유사하며 휴지통으로 이동하여 다시 복원할 수 있습니다.

테이블 이름 삭제 삭제:

한다면Drop와 함께 주어집니다.Purge테이블스페이스가 해제되어 복원할 수 없습니다.(바탕 화면의 Shift+Delete처럼)

다음은 실제 예입니다.

create table test_client (val_cli integer, status varchar2(10));
drop table test_client ;

select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';

SELECT * FROM RECYCLEBIN where ORIGINAL_NAME='TEST_CLIENT';

SELECT * FROM USER_RECYCLEBIN where ORIGINAL_NAME='TEST_CLIENT';

FLASHBACK TABLE test_client  TO BEFORE DROP;

select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';

drop table test_client purge;

select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';

drop table_name 삭제;

이 쿼리를 사용하여 수행된 작업:- 일반적으로 테이블이 삭제되면 테이블이 휴지통(Oracle 10g 기준)으로 이동됩니다.그러나 다른 개체에 대한 메모리를 해제하기 위해 데이터베이스의 메모리를 여전히 사용하고 있습니다. Purge 절을 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/7713432/difference-between-drop-and-drop-purge-in-oracle

반응형