DataBase/MsSQL

[MSSQL]SET NOCOUNT ON

DevStory 2020. 10. 14.

SET NOCOUNT

MSSQL에서 기본적으로 프로시저또는 SQL을 실행할 경우 SELECT, INSERT, UPDATE, DELETE의 영향을 받은 행의 갯수를 리턴합니다.

 

이떄, SET NOCOUNT ON을 설정하면, 행의 갯수를 리턴하지 않습니다.

 

SET NOCOUNT가 성능, 속도에 영향이 있는 이유는 이 메세지도 어떻게 보면 데이터이기 때문에 Byte입니다.

 

SET NOCOUNT OFF로 설정하고 반복문 또는 커서로 INSERT, UPDATE, DELETE를 할 경우 루프 횟수만큼 Client에게 메세지를 전달합니다.

SET NOCUNT OFF

SET NOCOUNT ON으로 설정하고 반복문 또는 커서로 INSERT, UPDATE, DELETE를 할 경우 한개의 메세지를 Client에게 전달하겠죠.

SET NOCOUNT ON

 

정리하자면, SET NOCOUNT OFF로 설정되었을 경우 필요없는 Byte만 더 받는셈입니다.

 

SQL의 성능이 아닌 네트워크 트래픽간의 성능에서 차이가 납니다.

 

MSSQL 서버가 쿼리를 실행하고 쿼리의 결과를 보내주는데, 메세지도 추가가 되는거죠.

 

상식적으로 용량이 작은 파일과 용량이 큰 파일이 있는데, 어떤 파일을 다운로드 받는게 더 빠를까요?

 

실제로 클라이언트 통계로 동일한 SQL이지만, SET NOCOUNT 설정에 따라서 다른 결과를 볼 수 있습니다.

 

위 내용은 아래 해외 사이트를 참조하여 작성이 된 글입니다.

아래 사이트를 참고하시면 SET NOCOUNT에 대해 더 정확한 정보를 볼 수 있습니다.

 

참조 : www.sqlshack.com/set-nocount-on-statement-usage-and-performance-benefits-in-sql-server/

반응형

'DataBase > MsSQL' 카테고리의 다른 글

[MsSQL]임시 테이블의 종류  (0) 2021.06.27

댓글