ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL BOOSTER - 불필요한 트랜잭션의 분리
    카테고리 없음 2024. 7. 9. 22:23

     

    트랜잭션을 최소화하려면 불필요한 작업을 트랜잭션에서 분리할 필요가 있다.

    sql booster

    위와 같은 가상의 주문처리 트랜잭션에서 

    1. A고객은 주문 완료 문자 발송 작업에서 지연이 발생 (외부 시스템과 연계하는 과정에서 딜레이)
    2. A고객은 주문한 재고 데이터에 락을 잡고 있음 -> 트랜잭션을 종료하지 못했으므로 락이 유지
    3. B고객은 재고 데이터 변경할 때 대기 상태에 빠지게됨 

    주문 완료 문자 발송 작업은 주문처리 트랜잭션에 포함할 필요가 없다! 별도의 트랜잭션으로 분리하는 것을 고려해야한다.

    이처럼 트랜잭션과 주요 연관성이 떨어지는 작업을 분리하면, 트랜잭션의 실행 시간을 줄 일 수 있다.

    이로 인해 락을 빠르게 해소 할 수 있으며 결과적으로 데이터베이스 동시성을 높일 수 있다. 

     

     

Designed by Tistory.