본문 바로가기

database4

패스트캠퍼스 SQL튜닝캠프 5일차 (1) - 고급 조인 테크닉 여러 상황에서 효율적으로 조인을 사용하는 방법을 알아보겠습니다.1. 누적매출 구하기아래와 같은 형태의 테이블이 있다고 가정하겠습니다.(출처 : 구루비)이 테이블의 데이터에 전체매출 데이터를 포함해서 조회하고 싶습니다.(이렇게 누적 매출이 추가되고 싶습니다.)오라클이라면 분석함수를 이용해서 해결할 수 있습니다.select 지점, 판매월, 매출, sum(매출) over(partition by 지점 order by 판매월 range between unbounded preceding and current row) 누적매출 from 월별지점매출partition by는 Group by에서 집합을 뺀 기능이라고 보시면 됩니다. 즉, 지점 단위로 잘라내기만 한 것입니다.unbounded preceding는 현재 윈도우.. 2017. 8. 30.
패스트캠퍼스 SQL튜닝캠프 3일차 - 인덱스 스캔 효율 8. (4) Index Skip Scan을 이용한 비효율 해소Index Skip Scan을 통해 인덱스를 좀 더 효율적으로 사용하는 경우와 방법을 진행해보겠습니다.고객번호, 판매월, 판매구분, 판매금액으로 이루어진 월별고객판매집계 테이블이 있다고 가정합니다. 이때 판매구분 + 판매월을 기준으로 조회해야 할때 어떻게 개선할 수 있을지 확인해보겠습니다.케이스1. 인덱스: 판매구분 + 판매월인덱스를 판매구분 + 판매월로 잡아 수행해보겠습니다.인덱스 : 판매구분 + 판매월 select count(*) from 월별고객판매집계 t where 판매구분 = 'A' and 판매월 between 200801 and 200812실행계획을 수행해보면 ConsistencyRead(LogicalRead)는 281이 나옵니다.... 2017. 8. 23.
맥북에서 오라클 사용하기 (docker + intelliJ) 보통 데이터베이스 관련 스터디나 학원의 경우 대부분이 오라클 데이터베이스를 기준으로 합니다. 하지만 저처럼 맥북을 사용하시는 분들은 오라클을 사용할 수 없어 VM머신등을 사용하는등 어려움이 많습니다. (저같은 경우 패스트캠퍼스 SQL 튜닝 캠프에서 오라클 데이터베이스를 기준으로 하여 어쩔수없이 오라클을 사용하게 되었습니다 ㅠㅠ) 그럼 이제 진행하겠습니다.0. 도커 설치도커를 기본적으로 알고 계시면 전혀 문제 될게 없지만, 모르신다 하여도 요즘은 도커 설치가 OS별로 아주 쉽게 되어있어 금방 하실수 있습니다. Docker 사이트에 접속하여 Docker For Mac 설치파일을 받아 설치하시면 됩니다. 1. 도커 컨테이너 생성 및 실행 설치가 끝나시면 터미널을 열어 컨테이너를 받아야합니다. 오라클 11g 이.. 2017. 8. 6.
패스트캠퍼스 SQL튜닝캠프 2일차 - 인덱스 향상 5. 테이블 Random Access 부하인덱스를 쓰는 이유는 RowId를 찾기 위함RowId는 HDD에 있음RowId를 해시 함수로 돌려Clustering Factor테이블 블럭들이 인덱스 정렬 순으로 얼마나 잘 정렬되어있는지에 대한 지표6. 테이블 Random 액세스 최소화 튜닝인덱스가 많을 때의 단점Command(명령 : 등록/수정/삭제)시 인덱스 변경이 필요하여 시간이 많이 소모인덱스 저장 장소가 필요하여 저장소 용량이 많이 필요하게 됨옵티마이저가 인덱스를 보고 실행계획을 작성하는데, 이때 인덱스가 많으면 많을수록 옵티마이저는 잘못된 실행계획을 생성할 확률이 높다.인덱스는 3개 이하를 권장한다.인덱스 컬럼 추가로 해결하기문제상황)인덱스 : deptno + job select * from emp w.. 2017. 7. 30.