yoni

프로시저 트랜잭션 처리 본문

SQL/MSSQL

프로시저 트랜잭션 처리

yoni-1117 2022. 7. 19. 15:25
  • MSSQL은 오토커밋이라 기본적으로 롤백이 없다.
  • MSSQL 프로시저 쿼리 호출 시 해당 문구를 많이 볼 수 있다 이 내용을 분석해 본다.
BEGIN  SET NOCOUNT ON  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

  • MSSQL BEGIN...END 블록 문법 - 흐름 제어
    • MS SQL 흐름제어문 중에서 BEGIN...END 문은 여러가지 Transact-SQL문을 그룹으로 묶어 실행 할 수 있도록 합니다. 저장 프로시저, 함수, 트리거를 만들 때 자주 사용되는 흐름 제어문이다.
BEGIN

 

  • 프로시저 실행시 서버의 부하를 주게될수 있는 결과 메시지를 OFF
    • 프로시저를 생성하고 실행하면 "(N개 행이 영향을 받음)" 이라는 메시지가 노출된다.
    • 테이블에 SELECT, INSERT, UPDATE, DELETE 등 트랜잭션이 발생한 결과를 사용자에게 알려주는 기능이지만 서버에 부하를 줄 수 있다고 한다.
SET NOCOUNT ON

 

  • 트랜잭션 격리수준 설정
    • SELECT 문장을 수행하는 경우 해당 데이터에 Shared Lock이 걸리지 않는 수준, 따라서 어떤 사용자가 A라는 데이터를 B라는 데이터로 변경하는동안, 다른 사용자는 B라는 아직 완료되지 않은 데이터를 읽을 수 있다.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

 

Comments