작성
·
19
0
selectpage_path, count(*) ashits_cnt,count(distincta.sess_id) asnet_cnt
fromga_sessa
joinga_sess_hitsbona.sess_id = b.sess_id
wherehit_type = 'PAGE'
groupbypage_pathorderby2desc
저도 아래 질문글처럼 같은 방식으로 쿼리를 작성했습니다. 이전섹션인 일별 페이지 조회수와 양식이 유사해서 저한테 더 익숙했기 때문입니다
그런데 수업에서 사용한 쿼리가 제 쿼리보다 월등히 처리속도가 빠르더라고요(3s vs 4.7s). SQL숙련도가 올라가면 튜닝이라는걸 통해 처리속도를 최적화해야 한다고 들었습니다.
나중을 대비해서 익숙한 제 쿼리보다는 처리속도가 빠른 선생님 코드처럼 코드작성 습관을 바꾸는게 좋을까요?
답변 2
0
안녕하십니까,
제 생각엔 실습 코드의 쿼리가 수행 속도가 더 빠를 이유는 없어 보입니다. 아마도 반복 수행하면서 메모리에 일부 데이터가 올라가면서 서로 다른 수행 속도가 나오는 걸로 생각됩니다(실제로 좀 더 나을 수도 있지만, 이건 쿼리 최적화라기 보다는 그냥 운(?)이 좋아서 그런걸로 생각됩니다).
제가 with 절을 부분별로 사용한 이유는 중요한 집합 레벨로 구분해서 더 잘 설명을 드리기 위함입니다(이게 코드 작성 표준이 아닙니다).
어떤 것이든 스스로 직관적인 이해가 더 편하신 SQL을 선택하셔서 사용하시면 됩니다. 오히려 한 SQL로 표현 가능한데 일부로 with 절을 사용하는 것은 불필요한 선택일 수 있습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
전해용님, SQL 쿼리의 최적화와 관련하여 질문 주신 내용에 대해 답변 드리겠습니다.
언급하신 대로 SQL 작성 시 효율적인 방식이 보다 중요한 경우가 많습니다. 데이터베이스 쿼리 성능 최적화는 데이터 양이 늘어나면 더욱 중요한 주제가 됩니다. 몇 가지 포인트로 답변드리면:
쿼리 최적화:
선생님의 쿼리 스타일:
SQL 튜닝의 중요성:
이와 관련하여 튜닝에 대한 좀 더 깊은 이해를 원하신다면, 잘못된 쿼리 작성 방식 이해하기 링크에서 관련 설명을 참고하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.