블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

최근에 올라온 글

1. DELETE 

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

  - DML(Data Manuplation Language) 
  - 사용 : DELETE FROM 테이블명 WHERE 조건; 

  - 데이터의 일부 또는 전부를 삭제 할 수 있음 
  - 삭제할 데이터들은 디스크에서 메모리로 로딩(loading)한 후 작업 
  - Disk I/O가 많이 발생하므로 메모리(Data buffer cache)에 있는 데이터를 삭제하기 전에 
    삭제할 데이터에 해당하는 Redo data, Undo Data를 생성 
  - COMMIT하기 전 ROLLBACK이 가능 
  - 삭제할 데이터를 해당 블록 내에서 하나씩 찾아서 삭제하기 때문에 시간이 오래 걸림 
  - 모두 삭제하였을 때도 사용된 블럭의 EXTENT 및 HWM을 그대로 유지  
  - 삭제(delete)하는 테이블의 데이터를 참조(reference)하는 테이블의 데이터에서 
    row단위로 체크해서 참조하는 테이블에 row가 없으면 삭제 가능 
  - 삭제한 row의 수를 반환함 
  - delete로 삭제된 데이터는 FLASHBACK QUERY로 복구 가능 

  - 통계정보(Analyze)를 변경하지 않음 

  

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

2. TRUNCATE 
------------------------------------- 

  - DDL(Data Definition Language) 
  - 사용 : TRUNCATE TABLE 테이블명; 

  - 데이터의 일부 삭제는 불가, 전부 삭제됨 
  - DDL(Data Definition Language) 이므로 데이터를 메모리로 로딩(Loading)하지 않음 
  - Undo, Redo log를 생성하지 않음 

    (테이블이나 인덱스가 차지하고 있던 저장공간 관리영역에 대한 적은 량의 redo log는 생성함) 
  - Undo, Redo log를 생성하지 않기 때문에 ROLLBACK 불가, 복구 불가 
  - 타 테이블에서 참조하고 있으면 Truncate 불가 
  - 모두 삭제되기 때문에 사용된 EXTENT 및 HWM을 초기화 
  - 참조(reference) 제약이 ENABLE인 경우 ORA-02266 오류 발생 
  - 실제 해당 데이터를 일일이 찾아서 지우지 않고, 

      데이터 딕셔너리(Data Dictionary)에 삭제 표시 및 
      빈 공간 표시만을 하기 때문에 빠른 시간 내에 시스템 부하없이 데이터를 삭제 가능 
  - 삭제한 row의 수를 반환하지 않음 
  - Truncate한 Table 하나만을 특정 시점으로 복구 시 Archive Log Mode로 운영 중인 경우에 

      Hot Backup 또는 Cold Backup을 이용한 별도 데이터베이스에서 Incomplete Recovery를 

      한 후 해당 테이블을 exp/imp해야 복구 가능 
  - truncate table로 삭제된 데이터는 FLASHBACK QUERY로도 복구 불가 

    (ORA-01466: unable to read data - table definition has changed) 

  - 통계정보(Analyze)를 변경함

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함