'Computer 2.0/Database'에 해당되는 글 2건

  1. 2012.07.05 데이터베이스 튜닝
  2. 2012.07.01 NoSQL
posted by 희정냥★ 2012. 7. 5. 01:08
1. 데이터베이스 튜닝의 개요

가. 데이터베이스 튜닝의 정의

- 데이터베이스 응용, 데이터베이스 자체, 그리고 운영체제의 조정 등을 통하여 최적의 자원으로 최적의 성능 (시간/응답속도)를 얻을 수 있도록 개선하는 작업

나. 정보시스템 성능과 관련된 주요 요소
1) H/W 관련
- CPU , Memory , N/W , Disk … System configuration resources 부족
2)S/W 관련
- DBMS : DB Design , Optimizing 전략 , SQL 효율
- Application Architecture : 2-Tier , 3-Tier , EJB, OLTP , OLAP , Batch 등
3) 업무프로세스
- 업무 처리 방식의 문제 , Load Balancing 정책 등

2. 데이터베이스 튜닝의 과정

가. 전체 성능튜닝 진행 프로세스


 



나. SQL 성능튜닝 진행 프로세스



3. 튜닝의 주요 기법

1) DB 설계 측면의 튜닝
가. 테이블의 분할/통합
  • 논리적으로는 통합된 단일 테이블이지만 DBMS가 지원하는 파티션기능 적용함으로써 액세스 효율로 DB I/O 를 최적화할 수 있음
  • DBMS에 따라 파티션기능이 제약되는 경우에는 테이블의 수평분할 고려
  • 액세스 패턴에 따라 단일 테이블을 1:1 로 수직분할을 고려할 수 있음
나. 식별자 지정
  • -본질 식별자와 인조식별자의 선택에 따라 정보의 상속과 단절에 영향을 줄 수 있음
다. 효율적인 인덱스 전략
  • 최소한의 인덱스로 최대의 효과를 얻을 수 있는 최적의 인덱스 구조 수립
라. 적절한 데이터타입 선택
- JOIN 시 연결되는 컬럼의 데이터 타입이 다른 경우 내부적인 변형에 의해 인덱스가 있음에도 불구하고 활용을 못해 조인순서나 조인방식을 달리 선택하는 비효율 발생 할 수 있음

2) SQL 튜닝
가.옵티마이저에 대한 이해
- RBO (Rule Based Optimizer) : 미리 정해진 Rule에 따라 실행계획 수립
- CBO (Cost Based Optimizer) : 통계정보로부터 모든 Access Path 고려하여 실행계획 수립
- 옵티마이저가 선택한 실행계획을 확인하고 최적화된 실행계획 수립이 이루어지도록 Factor 부여

나. 힌트사용
- 옵티마이저가 항상 최적화된 실행계획을 수립하는 것은 아니므로 힌트를 사용하여 원하는 실행계획으로 유도

다. 부분범위 처리
- 조건을 만족하는 전체집합이 아닌 일부분만 액세스하고도 결과를 리턴 할 수 있도록 하여 온라인 프로그램에서 응답시간(Response Time)을 최소화 할 수 있음

라. 인덱스 활용
- 인덱스가 있음에도 불구하고 SQL을 잘못 기술함으로써 무용지물로 만드는 오류를 없애야 함

마. 조인방식/ 조인순서
- 동일한 SQL문이라도 조인방식과 조인순서에 따라 처리속도는 매우 큰 차이를 가져올 수 있으므로 작성한 SQL이 어떤 실행계획으로 수립되는 지 반드시 확인 후 조정

바. 다중처리 (Array Processing)
- 배치작업의 경우 한번의 DBMS호출로 여러 건을 동시에 처리할 수 있는 다중처리 활용

사. 병렬쿼리 (Parallel Query )
- 배치작업의 경우 하나의 SQL을 여러 개의 CPU가 병렬로 분할 처리하게 함으로써 처리속도 향상 가져옴

아. Dynamic SQL 지양
- 조건절에 입력된 값을 먼저 Binding 한 후 실행계획을 수립하는 Dynamic SQL은 파싱 부하가 커지므로 입력 값을 Binding 하기 전에 실행계획을 수립하는 Static SQL을 가급적 사용하도록 함

3) DBMS 튜닝
- DBMS의 Configuration Parameter 값들을 조정함으로써 최적의 DBMS 자원 활용이 이루어지도록 함

 

 

* 출처 : http://i-bada.blogspot.kr/2012/04/blog-post_1728.html#!/2012/04/blog-post_1728.html

 

'Computer 2.0 > Database' 카테고리의 다른 글

데이터베이스 튜닝  (0) 2012.07.05
NoSQL  (0) 2012.07.01

댓글을 달아 주세요

posted by 희정냥★ 2012. 7. 1. 23:56

* NoSQL(NOT ONLY SQL)의 정의

- 관계 데이터베이스(RDBMS) 한계를 극복하기 위해, Join이 없고, 고정된 스키마를 갖지 않는 새로운 형태의 데이터 저장소


Consistency : each client always has the same view of the data

Availability : all clients can always read and write

Partition tolerance : the system works well across physical network partitions


일관성(Consistency) : 모든 사용자들에게 같은 시간에 같은 데이터를 보여 주어야 한다

유효성(Availability) : 모든 클라이언트 들이 읽기 및 쓰기가 가능해야 한다. 즉, 하나의 노드가 장애가 일어 나더라도 다른 노드에는 영향을 미치면 안된다.

분산가능(Partition Tolerance) : 물리적 네트워크 분상 환경에서 시스템 동작이 원할하게 이루어 져야 한다. 즉, 네트워크 전송 중 데이터 손실 상황이 와도 시스템은 정상적으로 동작을 해야한다







'Computer 2.0 > Database' 카테고리의 다른 글

데이터베이스 튜닝  (0) 2012.07.05
NoSQL  (0) 2012.07.01

댓글을 달아 주세요