일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모음
- Oracle
- table
- 가이드
- Tables
- database
- Allocation
- on write
- segment
- 3층
- DROP
- 호흡법
- Extent
- got errno 28 on write
- db
- Deallocation
- errno 28 on write
- truncate
- Procedure
- 횡경막
- stored
- 숨쉬기
- exec
- tablespace
- mysqldump: got errno 28 on write
- alter
- Tibero
- errno 28
- MSSM
- ASSM
- Today
- Total
Notedb
HWM RESET 본문
HWM을 재설정하는 방법
1. truncate table TABLE_NAME
delete from TABLE_NAME 대신 truncate 문을 사용하여 data를 제거한다.
truncate table 문에는 조건을 걸 수 없기 때문에, 모든 data를 지울 때만 사용할 수 있다.
truncate table 를 통해 모든 records를 제거하면 HWM은 초기치로 reset 된다.
2. alter table TABLE_NAME move tablespace TABLESPACE_NAME
해당 table을 지정한 tablespace로 이동시킨다.
row id가 변경되기 때문에 같은 테이블스페이스명으로 해도 된다.
row id가 변경되기 때문에 모든 index rebuilding 작업이 필요하다
** 해당 table data의 physical location (rowid) 이 변경되기 때문에, 해당 table에 걸려 있던 index가 unusable 상태가 된다
alter table .. move tablespace 를 수행한 후에 반드시 모든 indexes를 rebulid 해야한다.
3. alter table TABLE_NAME shrink space cascade;
HWM으로 예약되어 있는 빈 공간을 반납한다.
테이블 영역이 로컬 관리 테이블 영역, 자동 세그먼트 영역 관리인 것에 적용 가능
※ shrink command를 실행하기 전 alter table TABLE_NAME enable row movement를 실행해 주어야 한다.
--> ORA-10636: ROW MOVEMENT is not enabled 라는 오류가 발생한다.
※ 다음과 같은 table에 대해서는 shrink를 수행할 수 없다.
1) data type이 "long"인 column을 포함하는 경우
2) clustered table 의 경우
3) function-based index 혹은 bitmap join index가 생성되어 있는 경우
4) index-organized table의 mapping table
5) compress된 table
6) context indexes(domain indexes)를 가지는 table
'DATABASE > ORACLE' 카테고리의 다른 글
Oracle Block / Extent / Segment / Tablespace (1) (0) | 2023.11.17 |
---|---|
DB명세서 작성 쿼리 (0) | 2023.10.24 |
TABLESPACE 사용량 조회 (2) | 2023.10.20 |
DDL DML DCL TCL description (0) | 2023.10.20 |
Data Pump ( export / import ) 모니터링 (0) | 2023.10.19 |