본문 바로가기
반응형

2017/075

패스트캠퍼스 SQL튜닝캠프 2일차 - 인덱스 향상 5. 테이블 Random Access 부하 인덱스를 쓰는 이유는 RowId를 찾기 위함 RowId는 HDD에 있음 RowId를 해시 함수로 돌려 Clustering Factor 테이블 블럭들이 인덱스 정렬 순으로 얼마나 잘 정렬되어있는지에 대한 지표 6. 테이블 Random 액세스 최소화 튜닝 인덱스가 많을 때의 단점 Command(명령 : 등록/수정/삭제)시 인덱스 변경이 필요하여 시간이 많이 소모 인덱스 저장 장소가 필요하여 저장소 용량이 많이 필요하게 됨 옵티마이저가 인덱스를 보고 실행계획을 작성하는데, 이때 인덱스가 많으면 많을수록 옵티마이저는 잘못된 실행계획을 생성할 확률이 높다. 인덱스는 3개 이하를 권장한다. 인덱스 컬럼 추가로 해결하기 문제상황) 인덱스 : deptno + job selec.. 2017. 7. 30.
Spring Batch Paging Reader시 주의사항 안녕하세요? 이번 시간엔 Spring Batch Paging 구현시 주의 사항을 공유드리려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 문제 상황수백만의 데이터에서 조건에 맞는 데이터를 추출하여 가공하는 Spring Batch를 구현해야했습니다. Chunk Size를 설정한 후 Spring Batch를 실행하였는데 몇몇 데이터가 누락되기도 하고, 중복되기도 하는 문제가 발생하였습니다. 금액에 관련된 문제이기에 급하게 원인을 분석하기 시작했습니다.총 갯수가 맞았습니다.4만개가 호출되어야 하는 상황이였는데 정확히 4만개가 추출되.. 2017. 7. 29.
JPA N+1 문제 및 해결방안 안녕하세요? 이번 시간엔 JPA의 N+1 문제에 대해 이야기 해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 본문 JPA를 사용하면 자주 만나게 되는 것이 N+1 문제입니다. 예를 들어, 아래와 같은 구조에서 Academy를 호출하여 그 안에 속한 Subject를 사용한다고 가정해보겠습니다. 간단하게 이들의 관계를 코드로 표현하겠습니다. (lombok을 사용하였습니다.) @Entity @Getter @NoArgsConstructor public class Academy { @Id @GeneratedValue private.. 2017. 7. 24.
Tech HR 컨퍼런스 참석 후기 eBrain에서 주회하신 Tech HR 컨퍼런스에 다녀왔습니다! 연사분들 한분 한분이 개발자로 살면서 한번쯤은 이름을 들어봤을만큼 대단하신 분들이라 얼른 컨퍼런스 날이 오길 바랬습니다! (집이 이사해서 대방역까지 1시간 30분이나 걸렸네요 ㅠㅠ…) 오늘 발표 순서는 아래와 같습니다. 혹시나 못오셨을 분들을 위해 최대한 발표 내용을 정리하였습니다. 부족한 내용은 곧 영상이 올라올 예정이니, 조금만 기다려 주세요! 1. 성공하는 소프트웨어 엔지니어 - 박종천 넥슨에서 본부장님으로 계신 박종천님의 발표입니다. (박종천님은 이미 이전에 개발자가 익혀야할 9가지 기술라는 레전드 영상을 남기셨습니다.) HR 시스템 보통 HR 슬로건은 Attract -> Develop -> Engage 과정을 거침 Attract 블.. 2017. 7. 22.
패스트캠퍼스 SQL튜닝캠프 1일차 - 인덱스 구조와 스캔 방식 1주차1. 인덱스의 구조인덱스 == 정렬인덱스는 크게 해시 인덱스와 B+Tree 인덱스가 있습니다. 해시 인덱스는 키 값을 해시값으로 변경후, 해시값+값의 구조를 얘기합니다. 해시계산의 경우 데이터 양에 의존하지 않기 때문에 데이터 양이 늘어도 계산량(O(1))은 변경되지 않는다는 장점이 있습니다. 하지만 아래와 같은 경우에 전혀 사용할 수 없습니다.가격이 10,000원 이하의 선물을 찾고 싶다.제목이 "Final"로 시작하는 게임 리스트를 찾고 싶다.최신순으로 정렬된 값을 찾고 싶다.해시 인덱스의 이런 단점을 해결하고자 B+Tree 인덱스 구조가 있습니다.B+Tree 인덱스(출처 : 구루비 위키)Root Node와 Branch Node에 표기된 lmc는 Left Most Child를 뜻합니다. (Lea.. 2017. 7. 16.

728x90
반응형