티스토리 뷰

반응형

MSSQL 프로시저를 작성하다보면 최상단에 SET NOCOUNT ON이라고 선언하는 경우를 볼 수가 있습니다. 과연 SET NOCOUNT ON은 무슨 의미를 가지고 있는지 확인해보겠습니다.

 

SET NOCOUNT ON과 SET NOCOUNT OFF는 MSSQL에서 사용되는 옵션으로 실행된 쿼리에 대한 상태 메시지를 제어하는 역할을 합니다.

- SET NOCOUNT ON: 쿼리를 실행했을 때 영향을 받은 행의 수를 반환하는 메시지가 출력되지 않음. 

- SET NOCOUNT OFF: 쿼리를 실행했을 때 영향을 받은 행의 수를 반환하는 메시지가 출력됨. 

 

SET NOCOUNT ON 으로 옵션을 설정하면 성능 개선에 도움이 됩니다. 쿼리 실행 시 반환되는 메시지의 수가 줄어들기 때문에 네트워크 트래픽을 감소시키고 애플리케이션의 응답 시간을 향상시킬 수 있습니다. 그렇기 때문에 일반적으로 데이터베이스 프로시저나 대규모 트랜잭션 처리 시에 사용됩니다.

 

SET NOCOUNT OFF 옵션은 어떻게 사용할까요? SET NOCOUNT OFF 상태로 프로시저를 실행하면 쿼리의 영향을 받은 행 수를 확인할 수 있기 때문에 주로 디버깅이나 테스트를 할 때 도움이 됩니다.

 

다음은 SET NOCOUNT ON을 사용한 간단한 프로시저 샘플입니다.

CREATE PROCEDURE dbo.UpdateDeleteCustomer
    @CustomerID INT,
    @NewName NVARCHAR(50)
AS
BEGIN
    SET NOCOUNT ON;
    
    UPDATE Customers
    SET CustomerName = @NewName
    WHERE CustomerID = @CustomerID;

    DELETE FROM Orders
    WHERE CustomerID = @CustomerID;
END

기본적으로 SET NOCOUNT OFF가 기본 상태이기 때문에 일반적으로 프로시저 생성 시 최상단에 SET NOCOUNT ON을 선언해줘야 다음에 나오는 UPDATE나 DELETE 구문 실행 시 메세지가 출력되지 않습니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함