by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

이것은 데이터베이스이지, 데이터더미가 아니다




4.1 기본 키와 외래 키를 사용하라

  • 외래 키와 데이터베이스 유효성을 검사해야하는 이유
    (1)이 애플리케이션 이외에 이 데이터르 액세스할 애플리케이션은 영원히 없는가?
    (2)클라이언트에서 얼마나 신속하게 이 처리를 수행할 수 있겠는가?
    (3)키를 없애라고 권고하는 컨설턴트는 코드의 줄 수에 따라 월급을 받는가?

4.2 참조 무결성의 오버헤드를 테스트하라

  • 실습5_1(실습 준비)
    create table cities
    as
    select username city
      from all_users
     where rownum <=37;
    
    alter table cities
      add constraint
        cities_pk primary key(city);
    
    create table with_ri
    (x char(80),
    city references cities
    );
    
    create table without_ri
    (x char(80),
    city varchar2(30)
    );

  • 실습5_1(참조 무결성의 이용에 따른 성능 비용 테스트)
    analyze table cities compute statistics;
    analyze table with_ri compute statistics;
    analyze table without_ri compute statistics;
    alter session set timed_statistics=true;
    alter session set sql_trace=true;
    alter session set events '10046 trace name context forever, level 12';
    
    declare
       type array is table of varchar2(30) index by binary_integer;
       l_data array;
     begin
       select * BULK COLLECT into l_data from cities;
       for i in 1 .. 1000
       loop
         for j in 1 .. l_data.count
         loop
            insert into with_ri values ('x', l_data(j));
            insert into without_ri values ('x', l_data(j));
         end loop;
       end loop;
     end;
    /
    
    exit
    
    TKPROF C:\oracle\admin\ora9\udump\ora9_ora_652.trc ora9.trc SORT =(EXECPU) EXPLAIN = sys/sys
    
  • TKPROF 사용 부분은 오라클 클럽의 [01.대용량 데이터베이스 스터디] > 대용량 데이터베이스 솔루션 1 >
    2.SQL_TRACE,3.TKPROF(trace파일출력) 문서를 참조했습니다.

  • 프로시저의 실행으로 생긴 TKPROF 보고서
  • 데이터베이스에 참조 무결성을 추가하면 전체적으로 10%~15% 정도의 오버헤드가 발생한다.
    그러나 이정도의 오버헤드는 데이터 무결성 보장과 애플리케이션의 빠른 개발을 위해 충분히 감내할만 하다.

4.3 중간 계층의 검사가 만병 통치약은 아니다

4.3.1 속도는 빠른가?

  • 중간 계층에서 작성한 로더가 원시 직접 경로 적재(native direct path load)보다 빠를까?

4.3.2 융통성은 좋아지는가?

  • 데이터베이스 바깥에서 제약 조건을 검사한다면 작성해야 할 코드의 양이 증가하게 된다.

4.3.3 데이터베이스는 독립적인가?

  • 대상 애플리케이션이 트랜잭션 시스템일 경우 동시성 제어와 데이터 일관성에 관한 이슈가 존재할 것이다.

4.3.4 보안은 우수한가?

  • 감사하는 데 데이터베이스를 사용할 경우의 이점
    (1)DBA의 악의적인 행위를 탐지할 수 있다.
    (2)DBA의 감사 기능 해제 행위를 감지할 수 있다.
    (3)DBA의 감사 추적 기능 마비 행위르 감지할 수 있다.

문서에 대하여

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.