쿼리성능 질문드립니다.
313
1 asked
lag function 을이용하여 풀어보았는데요 혹시 lag 를 사용하는것과 조인을 하는것에서
성능차이가 어느정도 발생하는지 궁금합니다
with temp as (SELECT id
, num
, lag(num, 1) over() as lag1
, lag(num, 2) over() as lag2
from logs )
select DISTINCT(CASE WHEN num= lag1 and lag1 = lag2 then num ELSE Null END) as consecutiveNums
from temp
having consecutiveNums is not null
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
Jun님, lag 함수를 사용하는 것과 조인을 사용하는 것 사이의 성능 차이는 여러 요소에 따라 달라질 수 있습니다.
lag 함수는 현재 행에 대해 이전 행의 값을 참조할 때 사용하며, 주로 분석 함수의 일부로서 윈도우 함수 기능을 수행합니다. 이 함수를 사용할 때는 특정 순서에 따라 데이터를 정렬한 뒤에 전체 테이블을 스캔하여 선행 값을 구합니다. 적절한 인덱스가 없거나 큰 테이블에서는 성능 저하 요인이 될 수 있습니다.
조인은 두 테이블 간의 관계를 기준으로 데이터를 결합할 때 사용합니다. 조인의 성능은 인덱스, 조인하는 테이블의 크기, 조인 조건의 복잡성 등 여러 요소에 의해 영향을 받습니다. 인덱스가 잘 구성되어 있고, 조인 조건이 최적화되어 있다면 조인을 통한 쿼리의 성능이 충분히 빠를 수 있습니다.
성능 테스트는 데이터베이스의 용량, 행의 수, 쿼리의 복잡성, 서버의 사양 등의 환경에 따라 결과가 달라진다는 점을 기억해야 합니다. 따라서 특정 환경에서 두 방식의 성능을 비교하기 위해서는 실제 데이터와 쿼리 플랜을 분석하고, EXPLAIN 등의 도구를 사용하여 쿼리의 실행 계획을 검토해볼 필요가 있습니다.
실제 사용하는 데이터베이스 시스템에서 두 쿼리 모두 실행해보시고, 실행 시간, 자원 사용량, I/O 비용 등을 비교함으로써 어느 방식이 더 효율적인지 판단할 수 있습니다. 만약 더 자세한 분석이 필요하다면 DBMS 성능 최적화에 대한 전문적인 컨설팅을 받는 것도 고려해 볼 수 있습니다.
학습 관련하여 더 도움이 필요하시면 언제든 질문 남겨주세요. 감사합니다!
순위 함수 연습 문제 - 스테디셀러 작가 찾기
0
85
1
문제 내용이 잘못된 것 같습니다.
0
58
2
서브쿼리 질문
0
59
2
[수업질문] 서브쿼리 > null데이터 avg사용 주의
0
72
1
서브쿼리는 언제 작성하는건가요?
0
68
1
안녕하세요 질문드립니다.
0
66
2
Top Earners 문제관련 질문
0
96
2
고급반 cheetsheet
0
148
2
196. Delete Duplicate Emails 좋은 코드 질문
0
141
1
a.id = 1과 b.id=1이 없어도 되는 이유
0
125
0
강의 플랫폼
0
198
3
리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요
0
205
2
ERD 읽는법에 추가 질문 있어요
0
249
1
lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답
0
355
2
사용자정의함수
0
230
1
이 문제 inner join이 이해가 안됩니다.
0
295
1
평균 함수 사용할 때 주의점과 해결법
0
259
1
196. subquery로 풀 때, 궁금한 점
0
382
2
리트코드 highest department salary 문제
0
258
2
The report 문제 order by부분 질문
0
269
2
리트코드 서브쿼리 문제 질문
0
420
1
DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의
0
235
1
서브쿼리의 활용사례 및 조인관련질문
0
282
1
count(*)과 AS가 사용가능한절 TOP EARNERS문제
0
252
2

