"파티션 테이블 로컬인덱스 생성"의 두 판 사이의 차이
DB CAFE
(→로컬 인덱스 빠르게 생성하는 팁) |
(→로컬 파티션 인덱스 초간단 생성 팁) |
||
(같은 사용자의 중간 판 12개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
__TOC__ | __TOC__ | ||
− | == 로컬 인덱스 생성 == | + | == 로컬 파티션 인덱스 생성 == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{틀:타이틀 투명 | {{틀:타이틀 투명 | ||
− | |제목=1. | + | |제목=1.INDEX 생성(UNUSABLE 옵션 적용) |
|아이콘=arrow_downward | |아이콘=arrow_downward | ||
}} | }} | ||
− | <source lang=sql> | + | <source lang=sql>CREATE INDEX IX_TBABC10_L1 ON TBABC10(YM, PROC_CD, PROC_STAT) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | CREATE INDEX IX_TBABC10_L1 ON TBABC10(YM, PROC_CD, PROC_STAT) | ||
LOCAL ( | LOCAL ( | ||
PARTITION PT_TBABC10_200711 ... , | PARTITION PT_TBABC10_200711 ... , | ||
77번째 줄: | 14번째 줄: | ||
PARTITION PT_TBABC10_999999 ... | PARTITION PT_TBABC10_999999 ... | ||
) | ) | ||
− | UNUSABLE ; | + | UNUSABLE |
+ | ONLINE -- DML 영향도 없도록 | ||
+ | ; | ||
</source> | </source> | ||
− | + | ||
− | + | {{틀:타이틀 투명 | |
− | + | |제목=2.각 파티션별로 REBUILD + NOLOGGING 모드 | |
+ | - 가장 많이 ACCESS(최근 사용)되는 파티션부터 생성 | ||
+ | |아이콘=arrow_downward | ||
+ | }} | ||
<source lang=sql> | <source lang=sql> | ||
ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_999999 | ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_999999 | ||
89번째 줄: | 31번째 줄: | ||
ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_200803 | ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_200803 | ||
TABLESPACE TS_TBABC10_200803 PARALLEL(DEGREE 8) NOLOGGING; | TABLESPACE TS_TBABC10_200803 PARALLEL(DEGREE 8) NOLOGGING; | ||
− | + | .... | |
+ | .... | ||
+ | </source> | ||
+ | |||
+ | |||
+ | {{틀:타이틀 투명 | ||
+ | |제목=3.LOGGING 모드로 변경 | ||
+ | |아이콘=arrow_downward | ||
+ | }} | ||
+ | <source lang=sql> | ||
ALTER INDEX IX_TBABC10_L1 NOPARALLEL LOGGING; | ALTER INDEX IX_TBABC10_L1 NOPARALLEL LOGGING; | ||
</source> | </source> | ||
− | |||
− | |||
− | + | ---- | |
− | + | == 로컬 파티션 인덱스 초간단 생성 팁 == | |
− | |||
+ | {{틀:타이틀 투명 | ||
+ | |제목=1.파티션된 로컬 인덱스를 UNUSABLE 옵션으로 생성 | ||
+ | |아이콘=arrow_downward | ||
+ | }} | ||
<source lang=sql> | <source lang=sql> | ||
− | + | create index ix_sales_01 | |
− | + | on sales(col1,col2,....) | |
− | + | local unusable | |
− | + | online | |
− | + | tablespace ts_idx_01; | |
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
− | + | {{틀:타이틀 투명 | |
+ | |제목=2.로컬 인덱스 REBUILD 용 SQL생성 후 실행 | ||
+ | |아이콘=arrow_downward | ||
+ | }} | ||
<source lang=sql> | <source lang=sql> | ||
− | + | select 'alter index emp.'|| index_name ||' rebuild partition ' || partition_name || ' parallel 32;' | |
− | + | from dba_ind_partitions | |
− | + | where index_name = 'ix_sales_01'; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ; | ||
</source> | </source> | ||
− | + | ---- | |
− | |||
[[Category:oracle]] | [[Category:oracle]] |
2023년 6월 21일 (수) 00:06 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 로컬 파티션 인덱스 생성[편집]
arrow_downward 1.INDEX 생성(UNUSABLE 옵션 적용)
CREATE INDEX IX_TBABC10_L1 ON TBABC10(YM, PROC_CD, PROC_STAT)
LOCAL (
PARTITION PT_TBABC10_200711 ... ,
PARTITION PT_TBABC10_200712 ... ,
PARTITION PT_TBABC10_200801 ... ,
PARTITION PT_TBABC10_200802 ... ,
PARTITION PT_TBABC10_200803 ... ,
PARTITION PT_TBABC10_999999 ...
)
UNUSABLE
ONLINE -- DML 영향도 없도록
;
arrow_downward 2.각 파티션별로 REBUILD + NOLOGGING 모드 - 가장 많이 ACCESS(최근 사용)되는 파티션부터 생성
ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_999999
TABLESPACE TS_TBABC10_999999 PARALLEL(DEGREE 8) NOLOGGING;
ALTER INDEX IX_TBABC10_L1 REBUILD PARTITION PT_TBABC10_200803
TABLESPACE TS_TBABC10_200803 PARALLEL(DEGREE 8) NOLOGGING;
....
....
arrow_downward 3.LOGGING 모드로 변경
ALTER INDEX IX_TBABC10_L1 NOPARALLEL LOGGING;
2 로컬 파티션 인덱스 초간단 생성 팁[편집]
arrow_downward 1.파티션된 로컬 인덱스를 UNUSABLE 옵션으로 생성
create index ix_sales_01
on sales(col1,col2,....)
local unusable
online
tablespace ts_idx_01;
arrow_downward 2.로컬 인덱스 REBUILD 용 SQL생성 후 실행
select 'alter index emp.'|| index_name ||' rebuild partition ' || partition_name || ' parallel 32;'
from dba_ind_partitions
where index_name = 'ix_sales_01';