2025. 6. 18. 00:04 오라클
19.26 부터 추가된 impdp 옵션 소개
19.26 부터 추가된 impdp 옵션 (23ai 에서 사용가능, 정확히는 23.8 부터)
ONESTEP_INDEX 와 INDEX_THRESHOLD 라는 2가지 옵션이 생겼다. 이 두가지 옵션은 서로 같이 사용해야 하는 듯 하다.
1. ONESTEP_INDEX
When TRUE, creates all indexes concurrently with DOP=1 and when
FALSE (the default) uses 2-step process to maximize performance.
2. INDEX_THRESHOLD
Table size (in bytes) where index created with DOP=1 when less
than the threshold and with optimal DOP when greater.
-> default 는 150M
* INDEX_THRESHOLD 에 지정가능한 String 단위는 아래와 같다.
1000B, 100k, 200kb, 100M, 200mb, 100G, 200gb, 100t, 200TB.
이를 이해하기 위해서는 기존의 datapump 사용시 parallel 사용에 대한 이해가 필요하다.
- 11g 경우
PARALLEL=16. Data Pump는 하나의 작업자 프로세스를 사용하여 한 번에 하나씩 인덱스를 생성함 CREATE INDEX ... PARALLEL 16. 이는 큰 인덱스에 효율적..
- 12c 경우
12c에서는 더 많은 인덱스, 특히 여러 개의 작은 인덱스가 있는 스키마에 더 잘 맞도록 알고리즘이 변경됨. Data Pump는 16개의 Woker를 모두 사용하고, 각 Woker를 사용하여 인덱스를 생성. CREATE INDEX ... PARALLEL 1.
이는 대규모 인덱스의 경우 성능 저하 요인이 될수 있음 .
- 19c (19.26 이상), 23ai
19c, 23ai에서는 이 두가지 이점을 사용할 수 있음. Pump는 테이블 크기를 사용하여 최적의 병렬도를 결정한다. 대규모 배치시는의 최적 병렬도(DOP)를 사용하여 더 작은 인덱스를 생성하고 PARALLEL 1, 최대의 최적 병렬도를 사용하여 더 큰 인덱스를 생성한다. PARALLEL 15
- table 크기가 150 M 이하일 때는 무조건 parallel=1
- 무조건 성능이 좋게 나온다고 보장하지 않기 때문에 운영 시스템 환경에 따라 적절히 테스트 하여 작업할 필요 있음.