공통 비용 축

병목이 어디서 시작되는지 먼저 구분하면 대응이 빨라집니다.

윈도우 함수는 보통 파티션 분리 → 정렬 → 계산 순서에서 비용이 커집니다.
1. 행 묶기 PARTITION BY

같은 그룹으로 나눌수록 다음 단계의 작업 단위가 정해집니다.

2. 순서 맞추기 ORDER BY

읽기 순서가 어긋나면 큰 정렬 비용이 먼저 발생합니다.

3. 창 계산 OVER 절 실행

같은 창을 여러 번 돌리거나 파티션이 크면 계산이 무거워집니다.

비교 축
원인 1 정렬 부담이 큼
원인 2 같은 창을 반복 계산
원인 3 파티션이 너무 큼
느린 이유 파티션을 나눈 뒤 다시 정렬해야 해서 큰 정렬 작업이 생깁니다. 같은 OVER (...) 를 함수마다 반복하면 같은 기준을 여러 번 계산합니다. 한 파티션에 너무 많은 행이 모이면 메모리 사용량과 계산 범위가 함께 커집니다.
먼저 볼 것 PARTITION BYORDER BY 컬럼 순서가 인덱스와 맞는지 확인합니다. 여러 함수가 정말 같은 창 정의를 공유하는지 확인합니다. 필요 없는 기간, 상태, 그룹까지 한 번에 읽고 있지 않은지 확인합니다.
대표 대응 PARTITION BY dept ORDER BY salary 흐름에 맞춘 인덱스로 읽기 순서를 미리 정리합니다. WINDOW w AS (...) 로 같은 창 정의를 묶어 재사용합니다. WHERE order_date >= ... 처럼 범위를 먼저 줄여 필요한 행만 남깁니다.
왜 효과가 있는가 정렬 작업이 줄어들어 윈도우 계산 전 준비 비용이 가벼워집니다. 중복 계산을 피해서 같은 창을 다시 해석하고 실행하는 부담이 줄어듭니다. 큰 파티션 때문에 생기던 메모리 부담과 대형 계산 범위를 함께 줄일 수 있습니다.