COMMIT 문 사용횟수에 대한 논쟁


(1)COMMIT 문을 자주 사용해야 한다.

insert into a
  select * from b@링크명 where 년도 like '1990%';
commit;
insert into a
  select * from b@링크명 where 년도 like '1991%';
commit; 
insert into a
  select * from b@링크명 where 년도 like '1992%';

.
.  
commit;


(2)COMMIT 문을 자주 사용하지 않아야 한다.

insert into a
  select * from b@링크명 where 년도 like '1990%';
insert into a
  select * from b@링크명 where 년도 like '1991%';
insert into a
  select * from b@링크명 where 년도 like '1992%';

.
.
commit;


10.1 보편적인 최선책을 조심하라

  • 성능과 관련된 모든 것들은(벤치마킹 등을 통해) 증명될 수 있을 뿐만 아니라 반드시 증명되어야 한다.
  • 더욱 중요한 것은 경고 사항이 지적되어야 한다는 것이다.
  • 특정 상황에 알맞은 솔루션이라 하더라도 다른 상황에는 적합하지 않을 수 있다.
  • ex)IN(하위 쿼리) vs WHERE EXISTS(상관 하위 쿼리)


성능 튜닝에 관해 보편적으로 적용하기 어려운 예시
  • (1)테이블을 분석하기에 가장 좋은 방법은 무엇인가?
  • (2)무엇이 가장 우수한 테이블인가?
  • (3)두 데이터베이스를 동기화하기 위해 가장 좋은 방법은 무엇인가?


10.2 비율과 기타 신화를 의심하라

  • "튜닝이 잘된 시스템에서는 캐시 적중률이 96% 이상이어야 한다.
  • 이를 달성하기 위해서는 버퍼 캐시의 조정을 목표로 삼아야 한다."와 같은 검증되지 않은 튜닝신화
  • -> 캐시 적중률이 높은 시스템이야말로 심각하게 튜닝이 필요하다.
  • 너무 많은 논리적 I/O가 수행되어 래치를 필요로 하고 시스템에 인덱스가 남용되고 있기 때문이다.
  • 비율에 관한 기사를 읽을 때는 비율 그 자체보다는 다른 변수도 함께 고려하여야 한다.