Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Archives
Today
Total
관리 메뉴

성장일지

sqld 공부 본문

나의 성장기

sqld 공부

발전하고싶은개발자 2024. 4. 4. 01:54


- 분석/설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 주도 면밀하게 고려해야 한다.

- 만약 어떤 트랜잭션이 해당 비즈니스 처리에 핵심적이고 사용자 업무처리에 있어 중요함을 가지고 있고 성능이 저하되면 안되는 특징을 가지고 있다면 프로젝트 초기에 운영 환경에 대비한 테스트 환경을 구현하고 그곳에 트랜잭션을 발생시켜 실제 성능을 테스트해 보아야 한다.

- 이때 데이터 모델의 구조도 변경하면서 어떠한 구조가 해당 사이트에 성능상 가장 적절한 구조인지를 검토하여 성능이 좋은 모습으로 디자인 하는 전략이 요구된다.

- 성능을 고려한 데이터모델링은 정규화를 수행한 이후에 용량산정트랜잭션 유형을 파악하여 반정규화를 수행한다.

- PK/FK등을 조정하여 인덱스의 특징을 반영한 데이터모델로 만들고 이후에 데이터모델을 검증하는 방법으로 전개한다.

컬럼 단위에서 중복된 경우도 1차 정규화의 대상이 된다.

대량 데이터 탐색의 경우 인덱스가 아닌 파티션 및 데이터 클러스터링 등의 다양한 물리 저장 기법을 활용하여 성능 개선을 유도할 수 있다.

 반정규화 기법은 테이블 속성 관계에 대해서 반정규화를 적용할 수 있으며, 하나의 테이블의 전체 칼럼 중 자주 이용하는 집중화된 칼럼들이 있을 때 디스크 I/O를 줄이기 위해 해당 칼럼들을 별도로 모아 놓는 반정규화 기법은 테이블 추가 반정규화 기법 중에서 부분 테이블 추가에 해당한다.

- 한 테이블에 많은 칼럼들이 존재할 경우 데이터가 물리적으로 저장되는 디스크 상에 넓게 분포할 가능성이 커지게 되어 디스크I/O가 대량으로 발생할 수 있고 이로 인해 성능이 저하될 수 있다.

- 트랜잭션이 접근하는 칼럼 유형을 분석해서 자주 접근하는 칼럼들과 상대적으로 접근 빈도가 낮은 칼럼들을 구분하여 1:1로 테이블을 분리하면 디스크 I/O가 줄어들어 성능을 향상 시킬 수 있다.

- 하나의 테이블에 많은 양의 데이터가 저장되면 인덱스를 추가하고 테이블을 몇개로 쪼개도 성능이 저하되는 경우가 있다.

- 이때 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터관리 방법도 개선할 수 있도록 테이블에 적용하는 기법을 파티셔닝 이라고 한다.

- 인덱스는 값의 범위에 따라 일정하게 정렬이 되어 있으므로 상수 값으로 EQUAL 조건으로 조회되는 칼럼이 가장 앞으로 나오고 범위조회하는 유형의 칼럼이 다음에 오도록 하는 것이 인덱스 액세스 범위를 좁힐 있는 가장 좋은 방법이 된다.

'나의 성장기' 카테고리의 다른 글

ADsP 공부  (0) 2024.04.08
sqld 공부  (0) 2024.04.07
sqld 공부  (0) 2024.03.31
알아본 것  (0) 2024.03.25
나의 업무(상세페이지 에디터)  (0) 2024.03.12