본문 바로가기

cd database/대용량데이터베이스8

대용량 DB 7강 정리 (index의 사용) l B-tree Index - 인덱스는 data 와 rowid로 구성되어 있다. - B-tree Index는 트리에서 어느 쪽으로든 밸런스를 유지시키기 위해 노력하는 알고리즘이다. - 이를 위해서는 먼저 소트 작업이 선행되어야 하고, 같은 값이면 rowid순으로 정렬되어 있다. ( rowid = block Addr + location + file Addr ) l 인덱스를 사용하지 않는 경우 - 절대 좌변을 가공하지 말것. - DNAME LIKE '%ABC%' 나 '%ABC'는 인덱스를 타지 않음. - JOB 'SALES'(부정형 비교) (비트맵 INDEX에서는 인덱스 사용가능) - DNAME IS NOT NULL (값을 모른다.. 모르는 값은 소트 불가능) (** 결합인덱스로 만들어져 있을 때는 사용 가.. 2014. 5. 3.
대용량 DB 5강 정리(lock) 5강 1. 오라클 parallel 서버(OPS) l ops의 목적 - 가용성 : 어느 상황이 되더라도 시스템은 죽지 않고 계속 사용될 수 있어야 한다. - 성능향상 - 비용절감 2. 공유 메모리 캐쉬 - DBA의 인스턴스가 start되면 메인 메모리에 SGA가 상주하게 된다. l SGA의 주요구성 1. DB block buffer 2. Shared pool area : 파싱, 실행계획, sql 테스트를 저장하는 영역, 2번 이상의 같은 쿼리를 실행하면 최초에 저장된 메모리에서 확인함. 3. 멀티 블락 I/O - Full table scan시 하나가 아닌 여러 개의 block을 동시에 조회한다. - 예를들어, User가 100개의 서버에 sql을 수행했다면, DB writer가 데이터를 DB block b.. 2014. 4. 22.
대용량 DB 4강 정리(병렬처리, DB내부구조) 1. parallel 프로세싱 l Parallel 프로세싱을 왜 사용하는가? - 복잡한 쿼리의 수행속도의 개선 - 배치작업(다량의 데이터) - 저렴한 cost의 투자로 퍼포먼스를 발휘할 수 있음. l 예제 SELECT sum(revenue), store FROM line_items WHERE profit(price, cost, units) > 0.2 GROUP BY store 이와 같은 작업을 parallel로 처리하면, 1. 각각의 데이터를 CPU별로 쪼개서 range 스캔을 함. 2. profit 함수 연산을 함. 3. group by를 위해 상점별로 range 별로 sort (** 10g이전에는 자동 sort, 이후에는 order by 따로 적용 필요) 4. 결과를 query coordination.. 2014. 4. 15.
대용량 DB 3강 정리 (entity 종류, DB모델링의 중요성) 1. entity의 종류 - 시조(key entity) n 수많은 자식을 만든다. ex) 고객, 상품, 조직 - 원조(main entity) n 업무의 중심이 되는 것 ex) 계약, 계좌 - 활동량(action entity) 2. DB 모델링의 중요성 [그림3-1] 조직도 예시 위와 같은 조직도가 있다고 가정한다. 이 조직도 에서 조직개편으로 인해 1120 부서를 1200의 아래에 넣는다면, 아크로 설계한 경우 하위 11xx의 데이터들을 12xx로 변경하려고 밤새서 update 작업을 하는 경우가 적지 않을 것이다. 이와 같은 경우를 위해 아래와 같이 테이블을 설계하여(리커시브 모델) 자신의 데이터를 변경하지 않고, 부모와의 관계를 변경하면 단 시간 내에 요구사항 대로 작업 가능하다. (중요한 것은 관계.. 2014. 4. 14.