전체 글40 SQL 옵티마이저 : 조인 조건 Pushdown 조건절 Pushing옵티마이저는 쿼리 블록 단위로 최적화하는데, 조건절 Pushing 을 이용하면 조건들을 쿼리블록의 안에 넣거나 밖으로 빼냄으로서 실행시 성능을 개선할 수 있다. 조건절 Pushdown쿼리 블록 밖의 조건들을 쿼리 블록 안쪽으로 밀어 넣는다.조건절 Pullup쿼리블록 안의 조건들을 쿼리 블록 밖으로 꺼낸다. 꺼낸 조건은 다시 다른 쿼리 블록에 Pushdown 하는데 사용한다.조인 조건 Pushdown메인 쿼리를 실행하면서 조인 조건절 값을 건건이 Inner 쪽 뷰 쿼리블록 안으로 밀어 넣는다. 조인 조건 Pushdown오라클 11g에서 도입된 기능으로 이 기능이 실행된 상태면 실행계획에 'VIEW PUSHED PREDICATE' 오퍼레이션이 표기된다. NL조인 수행중에 스칼라 쿼리 없.. 2025. 1. 21. 사이트맵 테스트 https://m.blog.naver.com/yonder20/223728496169 https://m.blog.naver.com/yonder20/223728526129https://m.blog.naver.com/yonder20/223728523353 2025. 1. 17. DB 병렬 처리 멀티 프로세스를 이용해 DB를 동시에 처리할 수 있다. QC (병렬 처리 관리자 Query Coordinator) 가 병렬 서버에 작업을 할당하고 관리한다. Intra-Operation Parallelism 병렬 처리에서 서로 배타적인 범위를 독립적으로 동시에 처리한다. Inter-Operation Parallelism 서버집합에 속한 프로세스들이 읽은 데이터를 반대편 서버집합 혹은 QC에 전송하는 작업을 동시에 진행한다. IN-OUT 오퍼레이션PARALLEL_FROM_SERIAL (S -> P) QC가 읽은 데이터를 테이블 큐를 통해 병렬 서버 프로세스에 전송한다. PARALLEL_TO_SERIAL (P -> S) 각 병렬 서버 프로세스가 처리한 데이터를 QC에 전송한다. PARALLEL_FROM_PA.. 2025. 1. 6. DB 파티셔닝(Partitioning) : 파티션 Pruning과 파티션 Index 파티션 Pruning하드파싱 혹은 실행시 SQL 조건절을 분석해 읽지 않아도 되는 파티션 세그먼트를 액세스 대상에서 제외시킨다. 정적 파티션 Pruning(Static Partition Pruning) 파티션 키 컬럼을 상수 조건으로 조회할 경우 액세스할 파티션이 쿼리 최적화 시점에 미리 결정된다. 실행 계획의 PStart와 PStop 컬럼에 액세스할 파티션 번호가 출력된다. 동적 파티션 Pruning(Dynamic Partition Pruning) 파티션 키 컬럼을 바인드 변수로 조회할 경우 쿼리 최적화 시점에서 액세스할 파티션을 미리 결정할 수 없다. 실행 시점에서 사용자의 입력값에 따라 결정된다. 실행계획의 PStart와 PStop 컬럼에는 KEY라고 출력된다. 오라클 파티션 인덱스 파티션 테이블.. 2024. 12. 25. DB 파티셔닝(Partitioning) : 파티셔닝의 정의와 종류 1. 파티셔닝의 정의대용량 데이터 처리의 용이성을 위해 테이블이나 인덱스를 작은 단위로 나누어 관리하는 기법. 데이터 손실 가능성을 줄이고 필요한 부분만 탐색해 성능을 증가시킬 수 있지만, 테이블 간의 조인 비용이 증가하며, 테이블과 인덱스를 따로 파티셔닝해야 하는 단점도 있다. 성능(Performance) DML과 Query의 성능을 향상시킨다. 대용량 Data Write시 유리하다 Full Scan에서 데이터 Access 범위를 줄여 성능을 높일 수 있다. 필요한 데이터만 빠르게 조회할 수 있다. 가용성(Availability) 물리적인 파티셔닝으로 인해 전체 데이터의 훼손 가능성이 줄어든다. 각 파티션을 독립적으로 백업하고 복구할 수 있다. 테이블이 파티션 단위로 Disk I/O 가 분산되므로 경합.. 2024. 12. 21. 조인 튜닝 NL Join(Nested Loop Join) 반복문을 사용하여 조인을 수행한다. - 소량 데이터를 주로 처리하거나 부분범위 처리가 가능한 OLPT 시스템에 적합하다. - 선행테이블은 풀 스캔을 하기 때문에 선행테이블 크기가 작을수록 유리하다. - 후행테이블은 인덱스가 꼭 있어야 한다. - 랜덤 액세스 위주의 조인 방식으로 대량 데이터 조인할때는 불리하다 - 조인을 한 레코드씩 순차적으로 진행한다. 부분범위 처리가 가능하면 조인 대상 레코드가 많아도 빠른 응답 속도를 낼 수 있다. - 다른 조인 방식에 비해 인덱스 구성 전략이 특히 중요하다. select /* + use_nl() */ 1. 반복문의 위부에 있는 선행 테이블, 반복문의 내부에 있는 테이블을 후행 테이블로 둔.. 2024. 11. 13. 이전 1 2 3 4 ··· 7 다음