10. 고급 SQL 튜닝

  . DML 튜닝 방안 – 대량 데이터에 대해 작업할 경우 인덱스를 Unusable 상태로 변경하고 작업한 후에 인덱스를 재생성하는 것이 빠를 수 있다. – 오라클의 수정가능 조인 뷰는 키-보존 테이블에만 입력, 수정, 삭제가 허용된다. – 대량 데이터에 대한 UPDATE나 DELETE문의 경우 기존 데이터를 임시 테이블에 저장하고 테이블을 TRUNCATE 한 후 임시 테이블을 이용해 다시 입력하는

9. 인덱스와 조인

  . 비트맵 인덱스 – 고객번호처럼 Distinct Value 개수가 아주 많을 때, B*Tree 인덱스 보다 훨씬 많은 공간을 차지한다. – 여러 비트맵 인덱스를 동시에 사용 가능하고, Bitwise Not 연산도 가능하다. – Lock에 의한 DML 부하가 심각해서 OLTP성 환경에는 부적합하다.   . Hash Join – 조인 연결고리에 equi-join 조건이 하나라도 있어야 한다. – Build Input으로 선택된

8. 옵티마이저 원리

  . CBO(비용기반 옵티마이저) – 쿼리 최적화 과정에 Cost를 계산한다. – 비용이란 기본적으로, SQL 수행 과정에 수반될 것으로 예상되는 I/O일량을 계산한 것이다. – 옵티마이저가 비용을 계산할 때, CPU 속도, 디스크 I/O 속도 등도 고려할 수 있다. – 최신 옵티마이저는 I/O에 CPU 연산 비용을 더해서 비용을 계산한다.   . 전체범위 최적화(ALL_ROWS) 방식의 옵티마이저 – 쿼리의 최종

7. Lock과 트랜잭션 동시성제어

  . Read Committed – 기본 트랜잭션 격리성 수준(Transaction Isolation Level)   . 트랜잭션 동시성 제어 – 비관적 동시성 제어(Pessimistic Concurrency Control)는 두 트랜잭션이 같은 데이터를 동시에 수정할 것이라고 가정하고 데이터를 읽는 시점에 Lock을 설정하는 방식을 말한다. – 낙관적 동시성 제어(Optimistic Concurrency Control)는 두 트랜잭션이 같은 데이터를 동시에 수정하지 않을 것이라고 가정하고 데이터를 읽는 시점에

6. SQL 고급활용 및 튜닝

  . 데이터베이스 연결(Connection) – 연결 요청에 대한 부하는 쓰레드(Thread) 기반 아키텍처 보다 프로세스 기반 아키텍처에서 더 심하게 발생한다. – 전용 서버(Dedicated Server) 방식으로 오라클 데이터베이스에 접속하면 사용자가 데이터베이스 서버에 연결 요청을 할 때마다 서버 프로세스(또는 쓰레드)가 생성된다. – 공유 서버(Shared Server) 방식으로 오라클 데이터베이스에 접속하면 사용자가 데이터베이스 서버에 연결 요청을 할 때마다 서버 프로세스(또는

5. SQL 최적화 기본 원리

  . CBO(Cost Based Opimizer) – 테이블 및 인덱스 등의 통계 정보를 활용하여 SQL문을 실행하는데 소요될 처리시간 및 CPU, I/O 자원량 등을 계산하여 가장 효율적ㅇ일 것으로 예상되는 실행계획을 선택하는 옵티마이저 . 실행계획을 통해 알수 있는 정보 – 액세스 기법 – 질의 처리 예상 비용(Cost) – 조인 순서   . 실행순서 1. NESTED LOOPS 2. HASH

4. SQL 활용

  . 순수 관계 연산자 – SELECT – JOIN – DIVIDE   . 집합 연산자의 종류 집합 연산자 연산자의 의미 UNION 여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다. UNION ALL 여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시된다. 즉, 단순히 결과만 합쳐놓은 것이다. 일반적으로 여러 질의

3. SQL 기본 및 활용

  . REVOKE / 데이터 제어어(DCL) . SQL 문장들의 종류 명령어의 종류 명령어 설명 데이터 조작어(DML) Data Manipulation Language SELECT 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 한다. INSERT UPDATE DELETE 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. 예를 들어 데이터를 테이블에 새로운 행을 집어넣거나, 원하는 않는

2. 데이터 모델과 성능

  . 데이터모델링  – 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다. – 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다. – 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능 저하에 따른 Rework비용을 최소화 할 수 있는 기회를 가지게 된다.   – 데이터모델링을 할 때 정규화를 정확하게 수행한다. – 데이터베이스 용량산정을 수행한다. – 데이터베이스에 발생되는

1. 데이터 모델링의 이해

  . 모델링의 특징 – 현실세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있다. – 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있다. – 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.   . 모델링의 필요 – 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해