달력

8

« 2020/8 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

   

SAVEPOINT

·       현재의 트랜잭션을 작게 분할하는 명령어입니다.

·       저장된 SAVEPOINT ROLLBACK TO SAVEPOINT문을 사용하여 표시한 곳까지 ROLLBACK 할 수 있습니다.

·       여러 개의 SQL문을 실행하는 트랜잭션의 경우 사용자가 트랜잭션 중간 단계에서 SAVEPOINT 지정하고 차후 ROLLBACK 함께 사용하여 현재 트랜잭션 내의 특정 SAVEPOINT까지 ROLLBACK 있게 합니다.

 

 

 

SAVEPOINT 도식도

COMMIT명령이 수행된 다음 COMMIT명령이 수행될 까지가 하나의 트랜잭션으로 구성되므로 3개의 명령문(UPDATE, DELETE, INSERT) 하나의 트랜잭션이 됩니다.

이렇게 트랜잭션을 구성할 중간 중간 SAVEPOINT명령으로 특정 위치를 지정해 놓으면 하나의 트랜잭션내에서도 ROLLBACK TO 명령문을 통해 SAVEPOINT 표시한 곳까지 ROLLBACK 있습니다.

   

   

 

 

COMMIT vs SAVEPOINT

작업 단위는 COMMIT 사용하여 트랜잭션으로 묶어두고, 트랜잭션 안에서의 작은 단위는 SAVEPOINT 설정하는 것이 좋습니다.

 

작업단위

COMMIT

작은 작업단위

SAVEPOINT

 

 

 

 

SAVEPOINT 형식

·       SAVEPOINT 특정 위치를 지정하기

·       SAVEPOINT 지정해 놓은 특정 위치로 되돌아가기

 

 

SAVEPOINT 특정 위치를 지정하기

SAVEPOINT 레이블명;

 

 

SAVEPOINT 지정해 놓은 특정 위치로 되돌아가기

ROLLBACK TO 레이블명;

 

 


Posted by codedragon codedragon

댓글을 달아 주세요