top 327

성능 고도화 2 - 02 조인 원리와 활용

01 Nested Loops 조인 (1) 기본 메커니즘 (2) 힌트를 이용해 NL 조인을 제어하는 방법 ordered 힌트는 from 절에 기술된 순서대로 조인하라고 옵티마이저에게 지시할 때 사용 use_nl 힌트는 NL 방식으로 조인하라고 지시할 때 사용 10g 부터는 leading 힌트에 2개이상 테이블을 기술할 수 있도록 기능이 개선돼, from 절을 바꾸지않고도 마음껏 순서를 제어할 수 있게 되었다. (3) NL 조인 수행 과정 분석 실행계획을 해석할 때, 형제 노드 간에는 위에서 아래로, 부모 자식 노드 간에는 안쪽에서 바깥쪽으로 자식노드부터 읽는다. 각 단계를 완료하고 나서 다음 단계로 넘어가는게 아니라 한 레코드씩 순차적으로 진행한다. 단, order by 는 전체 집합을 대상으로 정렬해야 ..

IT기술/Oracle 2014.01.21

성능 고도화 2 - 01 인덱스 원리와 활용

01 인덱스 구조 (1) 범위 스캔 인덱스: 대용량 테이블에서 필요한 데이터만 빠르고 효율적으로 액세스할 목적으로 사용하는 오브젝트 범위스캔 (Range Scan): 인덱스는 키 컬럼 순으로 정렬돼 있기 때문에 특정 위치에서 스캔을 시작해 검색 조건에 일치 하지 않는 값을 만나는 순간 멈출 수 있다. (2) 인덱스 기본 구조 Root 를 포함한 Branch 블록에 저장된 엔트리에는 하위 노드 블록을 찾아가기 위한 DBA (Data Block Address) 정보를 갖고, 최말단 Leaf 블록에는 인덱스 키 컬럼과 함께 해당 테이블 레코드를 찾아가기 위한 ROWID (주소정보) 를 갖는다. * 리프 노드상의 인덱스 레코드와 테이블 레코드 간에는 1:1 관계 * 리프 노드상의 키 값과 테이블 레코드 키 값은..

IT기술/Oracle 2014.01.20

관리실무 총정리

01 Oracle Architecture1. DBMS 와 Oracle 이야기메모리에서 작업하고 디스크에 저장한다. 2. Oracle Server 의 전체 구조 살펴보기(1) Oracle Server 전체 구조인스턴스 (Instance) - 메모리 부분에 생성되는구조1) SGA (System Global Area) - Shared Pool (Library Cache, Data Dictionary Cache), Data Buffer Cache, Redo Log Buffer, Large Pool, Java Pool, Streams Pool, Fixed SGA2) Backgroud Process - DBWR, LGWR, PMON, SMON, CKPT, ETC데이터베이스 - Data files, Control f..

IT기술/Oracle 2014.01.17

백업복구 총정리

01 No Archive log mode 와 Archive log modeno archive log mode - redo log file 을 덮어쓰는 경우archive log mode - online redo log file 을 손실없이 지키는 방법 Archive log 를 만드는 시점은 log switch 가 발생하면 즉시 archiving 작업이 시작되며 이 작업을 하는 백그라운드 프로세스가 archiver(arch) 이다. 주의사항1. 별도의 저장공간 필요하다.2. 공간이 가득 찰 경우 DB가 중단된다.3. 관리가 까다롭다. archive redo log mode 로 변경하기DB 종료 → Parameter File 수정 → DB Mount 로 시작 → Mode 변경 → DB OpenSQL> shut..

IT기술/Oracle 2014.01.17

01 튜닝 방법론 및 SQL 처리 구조

1. SQL 튜닝을 위한 선결 과제(물리적인 환경)1) 업무에 적당한 H/W(시스템 설계자)구현될 업무가 운영되기에 충분한 용량의 서버 용량 산정 및 환경 구축CPU, Memory, Network 등2) 오라클 서버 튜닝(데이터베이스 관리자)SQL 특성에 맞도록 오라클 서버튜닝데이터 베이스 메모리 및 I/O 튜닝3) 운영 체제 튜닝(운영 체제 관리자)오라클 서버가 운용되는 데 필요한 기본적인 리소스 파라미터 튜닝 (설계 중의 과제)4) 업무 기능 분석(업무 분석가)목표로 하는 업무의 범위 선정명확한 업무 분석 및 설계5) 데이터 모델 설계(설계자)업무를 가장 잘 표현하는 단순 명료한 데이터 모델 필요- 명확한 업무 분석이 선결 과제- 업무의 범위의 명확한 구분 2. SQL 튜닝 기술이 필요한 사람1) 설..

IT기술/Oracle 2014.01.15

성능 고도화 1 - 01 오라클 아키텍처

DBMS 내부 아키텍처와 SQL 옵티마이저의 원리를 이해하지 않고서는 고성능의 DB 애플리케이션을 구축하기 어렵다. 01 기본 아키텍처 SGA 는 많은 프로세스가 동시에 데이터를 액세스 하기 때문에 사용자 데이터를 보호하는 Lock 은 물론 공유 메모리 영역인 SGA 상에 위치한 데이터 구조에 대한 액세스를 직렬화 하기 위한 LOCK 매커니즘 (Latch) 도 필요해진다. 오라클 접속 과정 1. 연결 요청 사용자 → LISTENER 2. 프로세스 생성 연결 요청 상속 LISTENER → SERVER 3. 메모리 생성 SERVER → PGA 4. RESEND 패킷 전송 SERVER → 사용자 5. 연결 사용자 → SERVER 리스너에 연결 요청을 하는 순간 하나의 프로세스를 띄우고 PGA 메모리를 할당한다..

IT기술/Oracle 2014.01.14

00 SQL 실행 계획 확인

요약 - recursive call 을 줄여라 - hard parse 를 줄이고, soft parse 를 유도 = db block gets 나만볼 수 있음 = consistent gets 모든 사람이 봄 = physical reads 디스크에서 읽음 실행계획 순서 가장 오른쪽으로 들여쓰기 된 놈부터 위로 차례대로 가다가 같은 depth가 있으면 확인 후 더 낮은 depth 가 있으면 거기로 고 다시 차례로 실행 SQL 실행 계획 확인 방법 • SQL 튜닝을 위한 기본적인 툴 • SQL Plus의 Autotrace 기능 – 가장 일반적인 방법 – 실행 결과, 실행 계획, 통계 정보 • Oracle Enterprise Manager – SQL 스크래치 패드(GUI 환경) • EXPLAIN PLAN 명령어 사..

IT기술/Oracle 2014.01.09

05 RAC 백업 복구 (RAW DEVICE 기반) 2 논리적 장애

Case 12. Drop table 삭제 복구하기- 무정지 상태에서 즉시 복구하기 – clone db / exp / imp 사용함* 사용자의 장애로 drop 된 특정 테이블을 삭제되기 전 상태로 복구해야만 합니다.중요한 것은 현재 서비스는 중단되어서는 안 된다는 것입니다. 테이블 삭제 시간은 알고 있는 것으로 가정합니다. * 실제 작업 순서Step 1. 현재 상태 백업 (Begin backup)Step 2. 테스트 테이블 생성 후 데이터 입력 – 최종 데이터 커밋 후 시간 확보할 것Step 3. Drop table 장애 발생Step 4. Rac1 노드에서 clone db 생성 작업 Step 5. Rac1 노드에서 clone db로 복구한 테이블을 exp 후 imp 해서 복구 완료함 Step 1. 현재 상..

IT기술/Oracle 2014.01.08

05 RAC 백업 복구 (RAW DEVICE 기반) 1 물리적 장애

이번 장에서는 Raw device 기반의 Oracle Real Application Cluster (이하 RAC)환경에서 어떻게 백업을 하고 장애가 발생했을 경우 어떻게 복구를 하는지 살펴 보도록 하겠습니다.( RAC 의 Storage를 구현하는 방법이 앞에서 살펴본 바와 같이 Automatic Storage Management (이하 ASM) 방식과 Raw Device (로우 디바이스) 방식이 있는데 ASM 기반의 백업 및 복구는 저자의 다른 저서인 오라클 관리 실무 와 오라클 백업과 복구의 정석의 ASM 과 RMAN 부분을 참고 하시면 됩니다.)그리고 RAC 구성에서의 장애 중에서 물리적인 하드웨어나 네트워크 관련 장애는 거의 발생하는 경우가 드물고 주로 사용자의 실수 등의 논리적 장애가 많이 발생하..

IT기술/Oracle 2014.01.08

17 Block Corruption and Repair

이번 장에서는 오라클 장애 중에서 가장 난해한 부분 중 한가지 인 Block Corruption 장애를 살펴보겠습니다.이번 장에서 살펴볼 내용을 간단히 정리하면 아래와 같습니다. 데이터가 저장되는 Block 들에 corruption 이 발생 할 경우에 Recovery 할 수 있는 가장 보편적이고 일반적인 기술들에 대해서 실습을 통해서 알아봅니다. 1. DBVerify 를 이용한 Block Recovery 2. DBMS_REPAIR 을 이용한 Block Recovery 그리고 마지막으로 공식적으로 문서화 되어 있지 않지만 아주 중요하고 막강한 Block Recovery tool 인 BBED 라는 툴을 살펴보고 BBED 툴을 이용하여 여러 가지 장애가 발생할 경우 어떻게 복구를 할 수 있는지예를 통해서 Bl..

IT기술/Oracle 2014.01.03