Inflearn brand logo image

인프런 커뮤니티 질문&답변

다라라람쥐님의 프로필 이미지
다라라람쥐

작성한 질문수

다양한 사례로 익히는 SQL 데이터 분석

과거 30일간 페이지별 조회수와 순페이지(세션 고유 페이지) 조회수 SQL로 구하기

아래와 동일한 질문에 대한 추가질문입니다

작성

·

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 작성 시 효율적인 방식이 보다 중요한 경우가 많습니다. 데이터베이스 쿼리 성능 최적화는 데이터 양이 늘어나면 더욱 중요한 주제가 됩니다. 몇 가지 포인트로 답변드리면:

  1. 쿼리 최적화:

    • 튜닝 및 최적화는 데이터베이스가 데이터를 처리하는 데 드는 시간을 줄이는 중요한 기법입니다. 이를 통해 쿼리 성능을 개선할 수 있습니다.
    • 정확히 동일한 결과를 위해 성능이 개선된 쿼리를 사용할 수 있다면, 그것을 이용하는 것이 좋습니다.
  2. 선생님의 쿼리 스타일:

    • 선생님의 쿼리가 더 빠른 이유는 다양한 방법이 있을 수 있습니다. 예를 들어, 특정 인덱스를 사용하는 쿼리, 불필요한 중간 테이블 생성을 줄이는 방법 등이 있을 수 있습니다.
    • 수업에서 배운 방법에 따라 쿼리를 작성하는 습관을 들이면 이후 복잡한 SQL 최적화 시 커다란 도움이 될 것입니다.
  3. SQL 튜닝의 중요성:

    • 데이터베이스에서 쿼리 성능을 높이기 위해 다양한 최적화 방법이 있으며, 이는 데이터의 크기와 구성에 따라 달라질 수 있습니다.
    • 특히 데이터 양이 많아질수록 튜닝의 중요성이 커지므로, 준비된 쿼리를 적극적으로 활용하는 것이 좋습니다.

이와 관련하여 튜닝에 대한 좀 더 깊은 이해를 원하신다면, 잘못된 쿼리 작성 방식 이해하기 링크에서 관련 설명을 참고하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

다라라람쥐님의 프로필 이미지
다라라람쥐

작성한 질문수

질문하기