일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- SQL 튜닝
- JPA
- 페이징
- 데이터모델링
- index
- INDEX SCAN
- Spring
- @MappedSuperclass
- 값 타입
- JPQL
- 오라클
- querydsl
- Spring data JPA
- SQL
- 성능최적화
- 친절한 SQL 튜닝
- 페치조인
- 데이터베이스
- TCP/IP
- 스프링 컨테이너
- 엔티티
- DTO
- fetch join
- 스프링
- 스프링 데이터 JPA
- 자바의 정석
- 컬렉션 조회 최적화
- 서브쿼리
- 그룹함수
- 정렬
- Today
- Total
목록Data Base (27)
nu_s
논리 모델링 논리 모델링은 비즈니스에서 필요로 하는 데이터를 명확하고 구체적으로 정의하는 과정 비즈니스 전체 영역에 대한 상세한 수준의 데이터 구조를 설계한다. 구축 방법론에 따라 기초 논리 데이터 모델 설계와 논리 데이터 모델 설계로 분리할 수 있다. 1. 엔티티 정의 및 상세화 1-1 핵심 엔티티(Key Entity) 업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티 유형 및 분류 업무규칙 및 지식(Business rule) 업무주체 및 대상 (S & O) 장소 핵심 엔티티를 데이터 성격에 따라 나누면 다음과 같다. 1-1-1 유형 및 분류 기업 활동에 대한 통계 수집 및 분석을 위한 기준으로 활용한다. 대분류, 중분류, 소분류, 세분류 코드로 구성되며 코드간 계..
개념 모델링 데이터 분석 과정에서 수립한 방향성에 맞게 전체적인 관점에서 개략적인 데이터 모델을 제시하는 단계 개념 모델링 절차는 업무 영역에서 요구사항을 형상화하여 개념을 도출하고, 구체화하여 엔티티를 식별한다. 엔티티 도출은 최하위 데이터 주제영역 내 핵심 엔티티를 도출하고, 엔티티 간 관계를 식별한다. 개념 모델링 단계에서는 주제영역을 정의하고 사업영역의 골격이 되는 핵심 엔티티를 도출한다. 개념 모델링 절차 주제영역 도출 주제영역 분류 및 정의 핵심 엔티티 정의 및 관계 정의 주제영역 기업이나 기관이 관리하는 데이터를 일관된 기준을 가지고 최상위 단계에서 분류한 데이터 집합 독립된 단위로 이루어진다. 주제영역 내에서 데이터는 상호 밀접한 관계를 가진다. 다른 주제영역과 명확히 분리된다. 핵심 엔티..
데이터 모델링 데이터 모델링이란? 업무를 파악하여 개념들을 정리하고 분류하여 엔티티, 속성, 관계로 형상화하는 과정이다. ER 모델 (Entity-Relationship Model) ER 모델은 표현하고자 하는 현실 세계의 업무를 개체(Entity)와 관계(Relationship)라는 두가지 개념으로 표현하는 모델. ER 모델 구성요소 엔티티(Entity) 업무를 구현하는 데 필요하고 관리해야 하는 주체, 대상,행위 등의 모든 집합적인 것. (Ex. 고객, 상품, 주문) 엔티티는 적어도 둘 이상의 인스턴스가 존재할 수 있어야 하고, 최소한 둘 이상의 속성이 있어야한다. 각 인스턴스를 식별할 수 있는 속성이나 관계가 하나 이상 정의되어야 한다. 슈퍼타입과 서브타입 ( JAVA의 상속과 비슷 ) 슈퍼타입, ..
통계 정보와 비용 계산 원리 선택도와 카디널리티 선택도 : 전체 레코드 중에서 조건절에 의해 선택되는 레코드 비율 선택도 = 1 / NDV 📍NDV (Number of Distinct Values) = 컬럼 값 종류 개수 카디털리티 : 전체 레코드 중에서 조건절에 의해 선택되는 레코드 개수 카디널리티 = 총 로우 수 X 선택도 = 총 로우 수 / NDV 통계정보 오브젝트 통계 테이블 통계 인덱스 통계 컬럼 통계 시스템 통계 시스템 통계는 애플리케이션 및 하드웨어 성능 특성을 측정한 것이며, 아래 항목들을 포함한다. CPU 속도 평균적인 Single Block I/O 속도 평균적인 Multiblock I/O 속도 평균적인 Multiblock I/O 개수 I/O 서브시스템의 최대 처리량 병렬 Slave의 평..

DML 튜닝 DML INSERT UPDATE DELETE DML 성능에 영향을 미치는 요소 인덱스 무결성 제약 조건절 서브쿼리 Redo 로깅 Undo 로깅 Lock 커밋 인덱스와 DML 성능 테이블에 레코드를 입력하면, 인덱스에도 입력해야 한다. 테이블은 Freelist(중간에 데이터 입력이 가능한 빈 공간)를 통해 입력할 블록을 할당받는다. Insert, Update, Delete 중 Update의 부담이 제일 크다. ( Update = Delete + Insert ) 핵심 트랜잭션 테이블에서 인덱스가 하나라도 줄면 TPS는 그만큼 향상된다. 무결성 제약과 DML 성능 개체 무결성 = PK 참조 무결성 = FK 도메인 무결성 = Check 사용자 정의 무결성 PK, FK는 중복체크를 해야해서 부담이 상..

소트 튜닝(Sort Tunning) 앞서 작성한 글을 참고하면 알 수 있듯이 소트는 기본적으로 PGA에 할당한 Sort Area에서 이루어진다. Sort Area가 다 차면, 디스크 Temp를 활용한다. Sort Area에서 작업을 완료할 수 있는지에 따라 소트를 두가지 유형으로 나눌 수 있다. 메모리 소트 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 것 (Internal Sort) 디스크 소트 할당받은 Sort Area 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우 (External Sort) 소트 연산은 메모리 집약적일 뿐 아니라 CPU 집약적이다. 많은 서버 리소스를 사용하고 디스크I/O가 발생하는 것도 문제지만 부분범위 처리를 불가능하게 함으로써 OLTP환경에서 애플리케이션의 성..
서브쿼리 조인 서브쿼리는 하나의 SQL안에 괄호로 묶은 별도의 쿼리 블록을 말한다. 서브쿼리를 DBMS마다 조금씩 다르게 분류하는데, 오라클을 기준으로 하겠다. select c.고객번호, c.고객명, t.평균거래, t.최소거래, t.최대거래 , (select 고객분류명 from 고객분류 where 고객분류코드 = c.고객분류코드) /* 스칼라 서브쿼리 */ from 고객 c , (select 고객번호, avg(거래금액) 평균거래, min(거래금액) 최소거래, max(거래금액) 최대거래 from 거래 where 거래일시 >= trunc(sysdate, 'mm') group by 고객번호) t /* 인라인 뷰 */ where c.가입일시 >= trunc(add_months(sysdate, -1), 'mm')..

해시 조인 (Hash Join) - 해시맵을 이용한 조인 NL 조인은 인덱스를 이용한 조인 방식이므로 인덱스 구성에 따른 성능 차이가 심하다. 소트 머지 조인은 항상 양쪽 테이블을 정렬하는 부담이 있다. 해시 조인은 위와 같은 부담이 없다. 기본 메커니즘 해시 조인도 소트 머지 조인처럼 두 단계로 진행된다. Build 단계 : 작은 쪽 테이블을 읽어 해시 테이블(해시 맵)을 생성한다. Probe 단계 : 큰 쪽 테이블을 읽어 해시 테이블을 탐색하면서 조인한다. 작은 쪽 테이블로 해시 테이블을 생성하는 이유 해시 테이블은 PGA 영역에 할당된 Hash Area에 저장한다. 해시 테이블이 너무 커 PGA에 담을 수 없으면 Temp(디스크)에 저장한다. 물론 무조건적인건 아니다. (큰 테이블로 사용해도 되긴 ..