각각 몇백만건의 데이터를 가진 테이블들 가지고 통계를 뽑아야하는 상황이 생겼다. A-a컬럼과 B-PK를 조인하여 컬럼 몇개 꺼내고A-b컬럼과 B-PK를 조인하여 또 다른 컬럼 몇개 꺼내고A와 C와 D를 조인하여 합계를 내놓는 컬럼 몇개 꺼내고 그리고 특정 데이터 집계를 위해 이용된 위 4개 테이블 외에 공통적으로 사용되는 내용 등을 가져오기 위해 A-PK와 E-PK를 조인하여 또 이것저것 꺼내오고..(그럼 테이블 5개로 봐야하나) 말로는 쉬운데 실제로 짜보니 도저히 원하는 속도가 나오질 않았다. 처음에 완성 된 쿼리 - 20초1차 튜닝 - 17~19초2차 튜닝 - 14~17초3차 튜닝 - 11~13초 처음에 비해 많이 줄였지만 여전히 사용자들이 쓰기에는 말도 안되는 속도였다 그래서 오라클 힌트를 사용해보..
사실 제목과 달리 알아보자는 취지보다 통계쿼리 짜다가 써본김에 그냥 아는 선에서만 적어보는 것이므로 추가적인 정보는 다른 갓갓티스토리를 통해서 알아보도록 하자. ※ 현업의 실쿼리와 데이터를 업로드할 순 없기때문에 간소화 시켜보았다. -쿼리와 결과- 1234567891011121314151617181920SELECTGROUPING_ID(REQ_NM) AS GID ,CASE WHEN REQ_NM IS NULL THENCASEGROUPING_ID(REQ_NM)WHEN 0 THEN '미입력' //신청자이름은 없는데 GROUPING_ID가 0이면WHEN 1 THEN '합계' //신청자이름은 없는데 GROUPING_ID가 1이면ENDELSE REQ_NM //위 조건에 걸리지 않으면 모두 신청자명ENDAS idNam..
- Total
- Today
- Yesterday
- java
- AWS
- 이클립스
- 쿼리
- nba2k19
- 점심
- 토이프로젝트
- 자바
- 스팀
- 수원
- 킹스의킹
- 프로그래머스
- 오라클
- springboot
- ec2
- NBA
- docker
- android
- 벤치멤버
- jenkins
- 새크라멘토킹스
- 패드
- 유플레이
- 스프링
- Oracle
- 엑스박스
- 디비전2
- Spring
- 디비전
- 게임
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |