DB 성능개선
병렬처리, Nest-Loop조인보다 Hash조인
SORT_AREA/HASH_AREA메모리 확보
Locking 발생억제
3단계(분이평)
데이터베이스 마이그레이션 : 왜 해야 할까?
Oracle, Sybase, Informix, SQL Server 등 다양한 기종이 혼합되어 각 DBMS들이 서로 연동하는 인터페이스 부분이나 서로 다른 SQL 구문 및 응용 프로그램의 개발 언어로 불필요한 비용을 지출하고 있고, 비효율적인 유지 보수의 구조를 유지하고 있다. 따라서, IT 인프라의 통합을 고려한다면 가장 먼저 데이터베이스 시스템의 통합을 검토해야 할 것이다. 당연히 Oracle이나 Sybase 어느 한 쪽으로의 통합이 개발의 용이성이나 유지 보수의 편리성에서 훨씬 경제적
마이그레이션 수행 방안
1) 마이그레이션 요구 사항 분석 및 마이그레이션 범위 결정
① DBMS만 마이그레이션 하는 경우
② Web 서버 등 응용 프로그램만 마이그레이션 하는 경우
③ Web 서버 등 응용 프로그램과 DBMS를 마이그레이션 하는 경우
④ Web 서버 등 응용 프로그램 및 미들웨어(TP Monitor), DBMS 모두 마이그레이션 하는 경우
⑤ Web 서버 등 응용 프로그램을 .NET으로 새로 개발하며 DBMS를 마이그레이션하는 경우
⑥ 마이그레이션과 함께 추가 기능의 모듈을 개발하는 경우 등
2) 기존 환경 진단 및 분석에 따른 마이그레이션 평가 및 평가 리포트 생성
3) 마이그레이션 위험 요소 및 기술 분석
① 데이터베이스 디자인 변경
② 마이그레이션 대상 시스템의 동일 기능 지원 여부
③ 데이터 변환 시 한글 지원 문제
④ 기존 데이터의 정합성 검토
⑤ 업무 프로세스 변경
⑥ 새로운 기술의 도입
⑦ 대용량 데이터 마이그레이션 방법 및 오류 발생
⑧ 고가용성 기능 선택
⑨ 작업 소요 기간 초과
⑩ 프로젝트 수행 인원 교체 등
4) 마이그레이션 방안 상세 설계를 통한 전략 수립
5) 스키마 개체 마이그레이션
6) 데이터 마이그레이션
7) SQL 구문 등 비즈니스 로직 마이그레이션
8) 응용 프로그램 마이그레이션
① 기존 응용 프로그램 환경을 그대로 사용하고 연결 설정 부분만 변경하는 경우
② UNIX용 응용 프로그램을 Microsoft Windows Subsystem for UNIX-based Applications (SUA)와 Services For UNIX(SFU) 등을 통해서 그대로 사용하는 경우
③ 응용 프로그램을 Win32API로 재 작성하는 경우
④ 응용 프로그램을 .NET으로 새로 작성하는 경우
9) 마이그레이션 점검
① 데이터베이스 스키마 개체 개수 점검
② 데이터 행수 및 정합성 점검
③ 프로시저 및 함수, 트리거 등 동일한 결과값 반환 여부 점검
④ 응용 프로그램의 오류 여부 점검
⑤ 백업 및 보안 정책 정합성 점검
⑥ 신규 시스템 환경 설정 점검
10) 최적화 작업
https://technet.microsoft.com/ko-kr/library/cc700780.aspx
[개념] DB 처리능력(Throughput), 처리시간, 응답시간, 로드시간 단축위한 진단,튜닝실행, 평가등 튜닝 기법,활동
[지표] SLA기반 지표 기반 응답/반환/처리량 평가, 목표설정 수행
[3단계] 1)분석(자료수집,목표설정) 2)이행(설계재검토,파라미터조정,SQL최적화) 3)평가(As-is, to-be, 기간별 모니터링)
[종류] 비즈니스, DB설계, SQL, DBMS, 외부환경(OS,HW)
[개선] 문제 대응 영역 튜닝
[평가] 이식성, 적정성, 확장성, 단순성
[접근방법] 1) SQL튜닝, DBMS튜닝, 외부환경 튜닝
2) 서버측면 개선작업, 불필요 IO 억제, 효율 메모리 사용 유도
[처리능력] 트랜잭션수/시간
[처리시간] 배치프로그램 성능목표
1)병렬처리, Full table 스캔, Hash 조인, 병목제거작업
[응답시간] OLTP 시스템 성능지표
1)인덱스활용,부분범위실시,Nestd-Join,불필요정렬삭제,Locking제한,하드파싱 억제
[로드시간] 정기적/비정기적 발생 데이터 로드 수행시간
1)Log파일 생성없이 Direct load,병렬로드작업,Disk I/O작업분산, 파티션이용 작업
DB 튜닝
Hit Rate최소화, 대기시간최소화, 응답시간 최소화
설계->DBMS->SQL튜닝
IT관점(성능,운영), 비즈니스관점
[개념] DBMS, Application, OS, Disk, Memory, N/W등의 성능관련 인자들의 조정을 통해 데이터 처리시 응답시간을 단축시키는 일련의 과정과 기법
[목적]응답속도향상,잠재적시스템장애방지,유지보수비용감소,투자비절감
[성능개선항목] DB설계관점->DBMS관점->SQL관점 순서로 성능개선
[관점] 모델링최적화, 환경최적화, 응용프로그램최적화
[범위] 옵티마이저,힌트,부분범위처리,인덱스,조인,다중처리(배치잡),병렬처리,스태틱SQL
[절차] 분석(SQL Trace), 이행(SQL,DBMS,설계튜닝), 평가(자료수집분석,산출물)
데이터 구조의 최적화, Agile 개발지원 위해 수행, 리그레션 테스트 필요
Hit Rate 최대화, 대기/응답시간 최소화 , 설계(반정규화,분산파일),환경(버퍼,캐 시),SQL(해시,조인)
* 튜닝 절차 3단계 : 성능진단 -> 성능개선 -> 결과평가
* 성능 튜닝 3단계 : 설계튜닝 / DBMS튜닝 / SQL튜닝
DB 리팩토링
DB Smell
멀포컬테 중매컬로스
[개념] DB Segment의 변화없이 스키마의 변경 통해 관리 편의성,속도,정합성 개선확보 작업
[유형] 구조 리팩토링, 데이터품질, 참조무결성, 아키텍쳐, 기능, 변환
[절차] 필요성판단->방법선택->영향도파악->테스트시나리오->스키마변경->인터페이스변경->테스트수행
[DB Smell] 1)Multi-Purpose column
2)Multi-Purpose table 3)Redundant data
4)Tables with many columns 5)Tables with many rows
6)Smart columns
데이터베이스와 관련 요소와의 결합관계(커플링-DB접근 모든요소) , 사례(멀티목적컬럼,테이블-중복데이터)
: 과거 95회 기출문제입니다. SW공학에서의 리팩토링 대신 DB에서
리팩토링을 어떻게 대응하는지를 보고자 출제 하였고, DB품질이 중요해지면서 해당 내용도 이해를 하고 간다면 DB품질 관련 문제가 나왓을때 하나의 서브토픽으로 좋은 답안을 작성할 수 있을꺼라 봅니다
-채점
:SW 리팩토링 처럼 DB리팩토링의 발생원인인 DB Smell을 언급하고 유형이나 기법을 제시하였다면 6점을 드렸고, 일반 SW 리팩토링으로 접근해서 작성하였는데 그렇다 하더라도 DB 리팩토링 느낌이 나야합니다. 또한 리팩토링을 성능측면에서 많이 접근했는데 품질측면에서 접근해서 작성되어야 합니다.
DB 마이그레이션
이기종 환경 통합, 빅뱅(대규모),빅뱅+단계적(업무중단최소),단계적전환
시스템(이동,재배열),데이터(추출,Load,성능튜닝),관리(데이터 아키텍처,매핑룰)
문제대응력,Tool활용능력,설계능력,오류조율능력,검증능력,코드변화대응력
'04.Database' 카테고리의 다른 글
정규화 (0) | 2020.06.08 |
---|---|
정규화 - 연결 함정 (Connection Trap) (0) | 2020.06.08 |
동시성 제어 - MVCC (0) | 2020.06.08 |
데이터 거버넌스 - 빅데이터 거버넌스 (0) | 2020.06.08 |
동시성 제어 - Locking (0) | 2020.06.05 |