본문 바로가기

IT

[MSSQL] SET NOCOUNT ON 셋팅

자동으로 저장프로시져를 만들게 되면 기본적인 폼에 들어있는 셋팅값입니다.

저장 프로시져를 만들때 SET NOCOUNT ON 으로 셋팅을 해주는게 좋다고 하네요..


MSDN 내용

 
SET NOCOUNT(Transact-SQL)
Transact-SQL 문 또는 저장 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 합니다.

구문
SET NOCOUNT { ON | OFF }

주의
SET NOCOUNT 옵션을 ON으로 설정하면 이 개수가 반환되지 않습니다. SET NOCOUNT 옵션을 OFF로 설정하면 이 수가 반환됩니다.
SET NOCOUNT 옵션이 ON으로 설정되어 있을 때도 @@ROWCOUNT 함수는 업데이트됩니다.
SET NOCOUNT 옵션을 ON으로 설정하면 저장 프로시저의 각 문에 대해 클라이언트에게 DONE_IN_PROC 메시지를 보내지 않습니다. 실제 데이터를 많이 반환하지 않는 일부 문이 포함된 저장 프로시저 또는 Transact-SQL 루프가 포함된 프로시저의 경우 SET NOCOUNT를 ON으로 설정하면 네트워크 트래픽이 크게 줄기 때문에 성능이 눈에 띄게 향상됩니다.
SET NOCOUNT로 지정된 설정은 실행 시간 또는 런타임에 적용되며 구문 분석 시에는 적용되지 않습니다.

사용권한
public 역할의 멤버 자격이 필요합니다.


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

실제 사용 예

SET NOCOUNT OFF로 했을때



SET NOCOUNT ON으로 했을때


※ 이글은 폐쇠한 제 블러그에서 가져온 글입니다.