대용량 테이블을 이행할시에 속도 저하 이슈가 뒤따르게 됩니다.
이행을 위해 체크할것들은
1. 테이블 파티션 여부
- 테이블 PK인덱스가 날짜로 나눠질수 있다면 가능한 파티션을 나눠서
기간별로 데이터가 스캔이 될수 있게 합니다.
2. 인덱스 설정과 like 및 부등호
-인덱스 검색시 설정에 따라 like 검색 시 인덱스를 안탈수도 있음.
플랜을 확인한 후에 체크하여 변경
3. 과도한 INDEX 생성의 경우
타겟테이블에 미리 인덱스가 많이 생성될 경우 이행속도가 현저히 줄어드므로
인덱스를 잠시 Kill했다가 Rebuild하는 방식을 사용
3. 데이터 건수가 적은 테이블을 우선 스캔
플랜을 확인하여 데이터 건수가 적은 테이블부터 스캔하도록 합니다.
Swap_input_joins , leading, ordered 힌트를 상황에 따라 사용
4. DB링크 사용 시 빠른서버로 지정
가장 빠른서버로 쿼리 젤 상단 힌트에 Driving_site 힌트 지정
* 한번만 써야 힌트가 적용됨
5. 데이터 건수에 따른 힌트운용
50만건이하는 index+use_nl , 대용량은 full+use_hash 조합을 사용
full & use hash 조합은 시스템 과부하 시 전체 병목현상을 일으킬수 있으므로
수행 계획 설립이 필요. use_nl은 메모리에 덜 영향을 받음.
6. Parallel 힌트를 사용
시스템부하를 막기 위해 최대 4 정도까지 지정하는것을 추천
힌트에 테이블만 지정하고 degree를 안 정하면
시스템 자원을 전부 가져다 쓰므로 유의할 것
7. 힌트가 안먹힐 때
쿼리안에 function을 서버가 불일치할 경우가 있음 확인체크할 것
'IT_tech > DB&Migration' 카테고리의 다른 글
대용량 db dml sp만들기 (0) | 2020.04.27 |
---|---|
ms-sql dual테이블 (0) | 2020.04.27 |
Mysql 이중화.. (0) | 2019.10.16 |
SQLD 시험 후기.. (0) | 2019.10.01 |
delete건수가 많을 때.. (0) | 2019.01.21 |