Set nocount on 옵션 설정하기

MS SQL을 사용하다보면 set nocount on 옵션을 사용해야 할 때가 있습니다. 대부분은 SQL 서버에 설정된대로 사용하기 마련인데요.

MS SQL에서는 Stored procedure(SP)에서 작업을 많이 하게 되는데요. 업무 로직이 복잡한 경우 데이터 쿼리가 복잡해지고 inset, update 등 여러 작업이 이루어집니다. 그런 경우 수행하는 쿼리가 느려지는 경우가 있는데 그 중에 한가지 원인이 print나 select 문 같은 출력문도 영향을 줄 수 있습니다.

프로그래머가 데이터 확인을 위해서 중간중간에 select, print문을 과도하게 넣는 경우에도 성능의 저하를 줄 수 있기 때문에 가급적이면 적게 넣어야 좋겠습니다.

앞에 서두가 길었는데 insert, update, delete와 같은 명령을 수행하면 수행결과가 표시됩니다. 몇개의 행이 업데이트 되었다 또는 삭제되었다와 같은 수행결과가 출력되지 않게 하는게 set nocount on입니다.

설정하는 방법은 간단합니다. 수행하려는 작업창을 열어서 set nocount on 이라고 앞에 선언을 하면 끝입니다. 그 다음 수행하는 모든 쿼리문의 수행결과가 나타나지 않습니다.
그리고 다시 표현하게 하려면 set nocount off라고 하시면 됩니다.

대개의 경우 Sp를 작성할때 사용하는 경우가 많습니다.
업무를 하는 중에는 쿼리 결과를 확인해야 되기 때문에 설정을 하지는 않고 대량쿼리 작업을 해야하는 경우에는 별도로 설정을 해서 하는 경우도 있는데요. 이 옵션은 수행하는 쿼리창에만 영향을 주기 때문에 새 창을 여는 경우에는 적용되지 않아 다시 옵션을 줘야합니다

사용방법은 MSDN에 나와있는 예제처럼 사용하시면 됩니다.

-- SET NOCOUNT to ON to no longer display the count message.  
SET NOCOUNT ON;  
GO  
SELECT TOP(5) LastName  
FROM Person.Person  
WHERE LastName LIKE 'A%';  
GO  
-- Reset SET NOCOUNT to OFF  
SET NOCOUNT OFF;  
GO  

댓글

이 블로그의 인기 게시물

dtsrun 실행하기

Slug가 뭘까?