독서 노트 시리즈 01 - < 수확, Oracle 뿐만 아니 라 >

독서 노트 시리즈 01 - '수확, 오 라 클 뿐만 아니 라' 는 최근 본 오 라 클 서적 을 체계적으로 정리 해 독서 노트 를 작성 할 계획 이다.이 책 은 제 가 개인 적 으로 쓴 가장 재 미 있 는 Oracle 서적 이자 Oracle 을 접 한 후 처음으로 완전히 정독 한 Oracle 중국어 서적 입 니 다.책 은 오 라 클 의 기본 원리 (물리 체계 구조, 논리 체계 구조), 표 설계, 색인 원리, 다 중 표 연결 등 을 다룬다.이 책의 가장 큰 특징 은 익살 스 러 운 수업 분위기 와 무미건조 한 기술 과 재 미 있 는 다 생활 이 야 기 를 비교 하여 독자 들 이 기술 을 정확하게 배우 고 응용 하 는 의식 을 키 우 고 목 표를 달성 하 는 전제 에서 가능 한 한 일 을 적 게 해 야 효율 적 이라는 것 이다.앞으로 한 가지 기술, 심지어 한 가지 지식 을 배 울 때 왜 그것 을 배 워 야 하 는 지, 그것 이 어떤 문 제 를 해결 하 는 지 생각해 야 한다.이러한 이 치 는 Oracle 기술 을 배 우 는 데 만 국한 되 는 것 이 아니 라 광범 위 하 게 응용 된다.
1. Oracle 기본 원리
1.1 Oracle 물리 체계 책 에서 유사 한 생활 사례 를 통 해 나머지 한 곳, 아빠 가 옷 가 게 를 운영 하고 엄 마 는 학교 옆에서 식당 을 운영 하 며 Oracle 물리 체 계 를 도입 하여 재미 가 넘친다.
1 구역: PGA, 2 구역: Instance (SGA + 배경 프로 세 스), 3 구역: Database (각종 파일)
구문 실행 과정 을 통 해 Oracle 시스템 구 조 를 체험 합 니 다. 검색 어 (select) 실행 과정: 1 구역 에서 준비 하고 사용자 연결 정보의 저장 과 권한 저장 을 완성 하 며 유일한 hash 값 을 생 성 합 니 다. 2 구역 에 들 어가 면 먼저 공유 탱크 에 가서 처리 합 니 다. 이 hash 값 이 없 으 면 문법 적 의미 권한 분석 생 성 실행 계획 을 검사 한 다음 에 데이터 버퍼 에 들 어가 조회 해 야 합 니 다.없 으 면 데이터 버퍼 는 데이터 파일 에서 데이터 버퍼 를 찾 아 가 져 와 사용자 에 게 보 여 줍 니 다.수정문 (update, insert, delete) 실행 과정: 쿼 리 문 구 는 어떤 과정 이 있 습 니 다. 데이터 버퍼 에서 수정 할 블록 을 찾 습 니 다. 수정 하기 전에 미 러 (CR 블록) 를 생 성하 고 수정 후 제출 합 니 다. LGWR 프로 세 스 는 log buffer 항목 을 redo logfile 에 기록 합 니 다. DBWR 프로 세 스 가 언제 수정 데 이 터 를 디스크 에 기록 할 지 는 확실 하지 않 습 니 다.
undo 의 역할: 사물 스크롤, 일치 성 읽 기 (구조 CR 블록) redo 의 역할: 데이터베이스 의 모든 작업 을 기록 하고 로그 쓰기 우선 원칙, 데이터 베 이 스 를 신속하게 제출 하 며 이상 단전 도 데이터 손실 이 없습니다.
사고 문제: 1) 수정 문 (update, insert, delete), 어떤 문 구 는 undo 가 가장 많 습 니까?어떤 문구 가 redo 가 가장 많 습 니까?참고 답안: 일반적으로 undo 가 기록 한 것 은 역방향 조작 이기 때문이다.insert 의 역방향 동작 은 delete 입 니 다. undo 는 delete 줄 의 rowid 만 기록 하면 되 기 때문에 insert 가 발생 하 는 undo 가 가장 적 습 니 다.delete 의 역방향 동작 은 insert 입 니 다. undo 는 insert 의 모든 필드 의 값 을 기록 해 야 하기 때문에 delete 가 발생 하 는 undo 가 가장 많 습 니 다.update 는 둘 사이 에 있 습 니 다.메모: undo 항목 도 redo 에 기록 되 어 있 습 니 다.
2) ORA - 01555 원인 과 해결 방안 은?참고 답안: 이 유 는 Oracle 조회 가 일치 성 읽 기 를 확보 해 야 하기 때 문 입 니 다. 검색 어 실행 시간 이 비교적 길 면 나중에 검색 블록 을 조회 해 야 하 는 undo 정보 가 덮어 져 일치 성 읽 기 에 필요 한 cr 블록 을 구성 할 수 없 기 때 문 입 니 다.Oacle 은 ORA - 01555 오 류 를 던 집 니 다.해결 방안:
a. 이 조회 SQL 을 최적화 하고 실행 시간 을 단축 합 니 다.
b. undo 증가retention 값 을 설정 하고 이 undo 표 공간 을 guarante (alter tablespace undotbs 1 retention guarantee;) 로 설정 합 니 다.
1.2 Oracle 논리 체계 서 는 유사 생활 사례 를 통 해 왕 부자 의 농장 (database) 을 서로 다른 양식 업자 (tablespace) 에 게 임대 하고 각 양식 업자 가 각각 소, 양, 돼지 (segment) 등 을 양식 한다.왕 씨 재 주 는 마음속 에 8 평 미 터 를 최소 계산 단위 (block) 로 하고 누구의 양식 공간 이 왕 씨 부자 에 게 공간 (extent) 을 신청 하기에 부족 합 니까? 공간 이 아무리 부족 하 더 라 도 왕 씨 재 주 는 특히 원칙 적 으로 3 개의 농장 을 남 겼 습 니 다. 시스템 농장 (시스템 표 공간), 임시 농장 (임시 표 공간), 스크롤 백 농장 (스크롤 백 공간) 은 각 양식 업자 에 게 편 의 를 제공 합 니 다.이 일련의 간단 하고 이해 하기 쉬 운 작은 일 을 통 해 Oracle 논리 체 계 를 도입 하여 사람들 로 하여 금 Oacle 표 공간, 세그먼트, 구역, 블록 의 개념 을 이미지 적 으로 이해 하 게 한다.표를 만들어 데 이 터 를 삽입 한 후 dba 를 통 해extents, dba_segments, dba_tablespace 는 논리 구 조 를 체득 합 니 다.
1.3 학습 체계 구조의 의미 도 책의 핵심 이다. 모든 일 을 다 배우 고 그 의 미 를 연구한다.만약 에 체계 구 조 를 단순히 설명 하 는 것 이 라면 제 가 예전 에 배 웠 던 체계 구조 노트 는 실제 내용 이 더욱 상세 합 니 다.
  • Oracle 체계 구조 총화
  • 1.3.1 이 책 이 강조 하 는 중점: 물리 체 계 를 배 우 는 것 은 어떤 의미 가 있 습 니까?일련의 문 제 를 통 해 예 를 들 어 데이터 베이스 메모리 조정 장면 은 속도 가 자전거 에서 우주선 까지 의 간단 한 최적화 사례 를 통 해 물리 체계 구조의 의 미 를 더욱 깊이 이해 할 수 있다.
  • --         :
    create or replace procedure proc1
    as 
    begin
        for i in 1 .. 100000
        loop
            execute immediate 'insert into t values ('||i||')';
            commit;
        end loop;
    end;
    /
    
    --      
    drop table t purge;
    create table t(x int);
    alter system flush shared_pool;
    set timing on 
    exec proc1;
    
    --    
    select sql_id, sql_text, parse_calls, executions from v$sql where sql_text like '%insert into t values%';

    그 다음 에 바 인 딩 변수, 정적 개작, 대량 제출, 집합 쓰기, 직접 경로, 병행 설정 에서 한 걸음 한 걸음 최종 체험 에서 우주선 속도 로 최적화 되 었 다.여기 서 중요 한 최적화 절 차 를 정리 하고 구체 적 으로 원서 내용 을 참고 할 수 있다.
    --    :       +     
    create or replace procedure proc3
    as 
    begin
        for i in 1 .. 100000
        loop
            execute immediate 'insert into t values (:n)' using i;
        end loop;
        commit;
    end;
    /
    
    --    :     +      +      + nologging
    create table t nologging parallel 16 as select rownum x from dual connect by level <= 1000000;

    정성 들 여 구 성 된 테스트 사례 이지 만 실제 최적화 작업 에서 도 위의 하나 또는 여러 가지 기술 수단 으로 조정 하 는 경우 가 많다.
  • 1.3.2 이 책 이 강조 하 는 중점: 논리 체 계 를 배 우 는 것 은 어떤 의미 가 있 습 니까?논리 체계 구 조 를 배 워 서 ORACLE 의 tablespace, segment, extent, block 등의 개념 을 분명히 할 수 있다.비교적 큰 대상 을 저장 해 야 한 다 는 것 을 알 고 있 는 표 공간 에서 그 크기 를 미리 합 리 적 으로 계획 하여 빈번 한 자동 확장 이 성능 에 영향 을 주지 않도록 한다.자주 업데이트 되 는 표 에 대해 서 는 PCTFREE 설정 이 합 리 적 으로 확대 되 는 것 을 고려 해 야 한다.업데이트 가 극히 적 고 읽 기만 하 는 표 에 대해 PCTFREE 는 0 으로 설정 할 수 있 습 니 다. 특정한 표 에 줄 이동 이 있 는 지 확인 하 는 방법:
  • @?/rdbms/admin/utlchain.sql
    analyze table t list chained rows into chained_rows;
    select count(*) from chained_rows where table_name = 'T';

    조회 에 기록 이 있 으 면 줄 이전 이 존재 한 다 는 것 을 증명 한다.
    2. Oracle 표 디자인
  • SQL Tuning 기초 개술 04 - Oracle 표 의 유형 및 소개
  • 3. Oracle 색인 원리
  • SQL Tuning 기초 개술 05 - Oracle 색인 유형 및 소개
  • SQL Tuning 기초 개술 10 - 색인 을 체험 하 는 흔 한 실행 계획
  • 4. Oracle 멀 티 테이블 연결
  • SQL Tuning 기초 개술 06 - 표 의 관련 방식: Nested Loops Join, Merge Sort Join & Hash Join
  • 좋은 웹페이지 즐겨찾기