이펙티브 오라클 (2008년)
테스트환경을 구축하라 0 0 519

by 구루비스터디 [2009.04.30]


  • 애플리케이션의 성능을 평가한다.
  • 수정된 부분이 실제로, 개선되어 작동하는지 확인.
  • 개발환경에서 작업한 업그레이드 스크립트가 올바르게 동작하는지 확인.
  • 패치 업그레이드, 릴리즈, 운영체제 패치 등 작업.


대표데이터로 테스트하라

  • 100만개의 행이 있는 프러덕션이라면 실제 100만개의 행으로 테스트하라.
  • 프러덕션의 통계정보를 테스트 시스템에 적용해서 테스트하기도 함.


데이터 서브세팅의 사용을 고려해 보자

  • 각 테이블의 한두 파티션만을 적재하여 테스트할 수도 있다.


최적화기가 시간에 따라 쿼리 계획을 바꿀 수 있다는 사실을 알아야 한다

  • 대표데이터를 사용한다고 해서 반드시 프로덕션과 테스트시스템의 쿼리 계획이 동일하지는 않다.
  • 물리적인 여러가지 상황을 고려하여 쿼리 계획을 만든다.


테스트 준비

create table clustered ( x int, data char(255));

insert /* append */
  into clustered ( x, data)
select rownum, dbms_random.random
  from all_objects;

alter table clustered 
  add constraint clustered_pk primary key (x);

analyze table clustered compute statistics;

create table non_clustered ( x int, data char(255));

insert /* append */
  into non_clustered ( x, data)
select x, data
  from clustered
 order by data;

alter table non_clustered 
  add constraint non_clustered_pk primary key (x);

analyze table non_clustered compute statistics;

select index_name, clustering_factor
  from user_indexes
 where index_name like '%CLUSTERED_PK';

show parameter optimizer_index

set autotrace traceonly explain

select * from clustered where x between 50 and 2750;

select * from non_clustered where x between 50 and 2750;






단일사용자 환경에서 테스트하지 말라

  • 실제상황에서 많은 세션이 동시에 데이터를 액세스하는 어느정도 부하가 있는 환경에서 애플리케이션을 테스트하라.


먼지가 없는 연구실에서 테스트하지 말라

  • 테스트환경은 철저히 실제 환경을 반영해야 한다.
"구루비 데이터베이스 스터디모임" 에서 2008년에 "이펙티브 오라클" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3517

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입