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가 수행되어 래치를 필요로 하고 시스템에 인덱스가 남용되고 있기 때문이다.
- 비율에 관한 기사를 읽을 때는 비율 그 자체보다는 다른 변수도 함께 고려하여야 한다.