인서트 문을 하나 실행하는데 있어
트랜잭션으로 묶어서 실행하는 것과
그냥 쿼리 하나 실행하는 것과 비교하면
트랜잭션 처리하는 게 오버헤드를 더 가지게 되나요? 아니면 그냥 같은 수행인가요?
begin
loop(1000) { insert; }
commit
과
loop(1000) { begin; insert; commit}
의 차이입니다.
단일 세션만을 고려한다면, 전자가 당연히 성능 상으로는 낫겠죠.
하지만, 실 세계 안에서는 꼭 그렇지만은 않습니다.
왜냐하면, 그 insert 작업 사이 다른 세션들의 작업들도 함께 있기 때문입니다.
작업 성격에 맞춰 전자를 택할 지, 후자를 택할 지 선택해야합니다.