반응형
SELECT SQL
FROM
(SELECT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' ENABLE ROW MOVEMENT ;'
||CHR(10)
||'ALTER TABLE /* '||NUM_ROWS||' */ '||TABLE_OWNER||'.'||TABLE_NAME||' modify partition '||PARTITION_NAME||' SHRINK SPACE CASCADE ;'
||CHR(10)
||'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' DISABLE ROW MOVEMENT ;' SQL
, ROW_NUMBER() OVER(ORDER BY TABLE_OWNER, TABLE_NAME) NUM
FROM dba_tab_partitions
WHERE TABLE_OWNER IN ('유저명')
AND TABLESPACE_NAME='검색할 테이블스페이스'
)
;
FROM
(SELECT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' ENABLE ROW MOVEMENT ;'
||CHR(10)
||'ALTER TABLE /* '||NUM_ROWS||' */ '||TABLE_OWNER||'.'||TABLE_NAME||' modify partition '||PARTITION_NAME||' SHRINK SPACE CASCADE ;'
||CHR(10)
||'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' DISABLE ROW MOVEMENT ;' SQL
, ROW_NUMBER() OVER(ORDER BY TABLE_OWNER, TABLE_NAME) NUM
FROM dba_tab_partitions
WHERE TABLE_OWNER IN ('유저명')
AND TABLESPACE_NAME='검색할 테이블스페이스'
)
;
2번 결과값
--row movement를 enable 시켜준다(enable하지 않고 실행시 에러발생됨)
ALTER TABLE SCOTT.NCT_TABLE ENABLE ROW MOVEMENT ;
--shrink를 시켜주고 cascade를 하면 index는 따로 rebuild 해주지 않아도 된다
ALTER TABLE /* 0 */ SCOTT.NCT_TABLE modify partition P202203 SHRINK SPACE CASCADE ;
--row movement를 다시 disable 시켜준다
ALTER TABLE SCOTT.NCT_TABLE DISABLE ROW MOVEMENT ;
--온라인중에 사용가능하여 편하지만, 완벽하게 하기 위해서는 rebuild 시켜주는게 좋음
--row movement를 enable 시켜준다(enable하지 않고 실행시 에러발생됨)
ALTER TABLE SCOTT.NCT_TABLE ENABLE ROW MOVEMENT ;
--shrink를 시켜주고 cascade를 하면 index는 따로 rebuild 해주지 않아도 된다
ALTER TABLE /* 0 */ SCOTT.NCT_TABLE modify partition P202203 SHRINK SPACE CASCADE ;
--row movement를 다시 disable 시켜준다
ALTER TABLE SCOTT.NCT_TABLE DISABLE ROW MOVEMENT ;
--온라인중에 사용가능하여 편하지만, 완벽하게 하기 위해서는 rebuild 시켜주는게 좋음
'DBMS > Oracle' 카테고리의 다른 글
table별 조회 (0) | 2022.07.04 |
---|---|
table shrink 권고사항 확인(테이블 데이터 0건인데 용량 차지 하고 있는 테이블 실행) (0) | 2022.07.04 |
index unusable 확인(index 깨진거 확인 쿼리) (0) | 2022.07.04 |
index rebuild 하는 방법 (0) | 2022.07.04 |
Index Primary 와 Foreign Key 관계 찾기 (0) | 2022.07.04 |