[MSSQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상)
- DB/MSSQL
- 2018. 3. 28.
SET NOCOUNT란?
쿼리문 또는 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 하는 것
구문 : SET NOCOUNT {ON/OFF}
사용하는 이유
MSSQL에서 프로시저를 만 들 경 우 프로시저의 속도(성능)에 대해서 생각을 안 할 수 없습니다.
프로시저의 속도가 프로그램의 속도에 밀접한 관련이 있는 만큼
프로시저의 성능에 대해 초점을 맞추고 쿼리문을 짜야합니다.
이번 포스팅에서는 SET NOCOUNT라는 함수를 사용하여
쿼리 문의 속도를 향상하는 방법에 대해 알아보겠습니다.
MSSQL에서 프로시저를 만들고 실행을 해보면
위와 같은 메시지를 보신 적이 있으실 텐데요.
위 메시지는 INSERT나 UPDATE DELETE처럼 테이블에 영향을 주게 되면 출력이 됩니다.
하지만 위에 보이는 0 개행이 영향을 받았다는 메시지는 전혀 필요가 없죠
괜히 메시지를 출력하는데 서버 부하만 걸릴 뿐입니다.
이 메시지는 프로시저 시작점에 SET NOCOUNT ON이라는 문구를 삽입해줌으로써 제거해줄 수 있습니다.
예제
CREATE PROCEDURE PROC_NAME
(
COMPANY NVARCHAR(7),--회사
NO_TRAN NVARCHAR(20), --전표번호
PLANT NVARCHAR(7), --공장
DT_TRAN NVARCHAR(8) --작업일
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO EX_TABLE(CD_COMPANY,NO_TRAN,CD_PLANT,,DT_TRAN)
VALUES(@P_CD_COMPANY,@P_NO_TRAN,@P_CD_PLANT,@P_DT_TRAN)
SET NOCOUNT OFF
RETURN
END;
이렇게 해주면 1개의 메시지만 출력이 됩니다.
[MS_SQL] NULL값 체크 (ISNULL) 함수 사용법 & 예제
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] NULL값 체크 (ISNULL) 함수 사용법 & 예제 (0) | 2018.03.29 |
---|---|
[MSSQL] 커서 사용법 & 예제 (5) | 2018.03.29 |
[MSSQL] 반복문(WHILE)사용법 & 예제 (0) | 2018.03.26 |
[MSSQL] 피벗 테이블을 활용하여 세로로 된 데이터 가로로 출력하기 (0) | 2018.03.22 |