-
부분범위처리란?
어떤 SQL에서 WHERE절에 주어진 조건을 만족하는 전체범위를 처리하지 않고 운반단위(array size) 까지만 먼저 처리하여 그 결과를 추출시킨 뒤 다음 작을 계속하겠다는 사용자의 요규가 있을 때까지 잠정적으로 수행을 멈추는 처리방식
부분범위처리의 목적
- 부분범위처리의 목적은 스캔범위를 나누어서 운반단위를 가능한 빨리 채워서 처리속도를 향상시키는 것이다.
- 10,000건의 데이터를 스캔해야 할때 1,000건만 읽어서 필요한 운반단위를 채울 수 있다면 10,000건을 다 읽지 않고 1,000건씩 10번으로 나눠서 처리할 수 있도록 하는 것이다.
부분범위처리의 적용원칙
부분범위처리의 자격
- 논리적으로 전체범위를 읽어 추가적인 가공을 하지 않고도 동일한 결과를 추출할 수 있다면 자격이 존재
부분범위처리를 할 수 없는 경우
- SUM, COUNT등의 GROUP함수를 사용한 경우
- ORDER BY가 사용된 경우
- UNION, MINUS, INTERSECT를 사용한 경우
부분범위처리를 할 수 없는 경우의 대체
- UNION \-> 중복제거의 목적이 없다면 UNION ALL로 대체
- ORDER BY \-> INDEX를 이용하여 ORDER BY를 하지 않아도 되는 형태로 대체
- MINUS, INTERSECT \-> EXISTS, NOT EXISTS, IN, NOT IN
부분범위처리의 수행속도 향상원리
- 수행속도는 운반단위를 채우는 속도에 비례한다.
'Database' 카테고리의 다른 글
데이터베이스 설계에서 중요한점 (0) 2024.04.02 NATURAL JOIN이란? (0) 2020.06.04 오라클 1주차 (0) 2020.06.03 같은 테이블의 컬럼 값을 참조하여 null 값 Update (0) 2019.12.24