증상

Microsoft SQL Server Management Studio (SSMS)를 사용 하 여 많은 양의 데이터를 반환 하는 SQL 쿼리를 실행 하면 다음과 같은 오류 메시지가 표시 됩니다.

일괄 처리를 실행 하는 동안 오류가 발생 했습니다. 오류 메시지: ' OutOfMemoryException ' 형식의 예외를 throw 했습니다.

원인

이 문제는 SSMS의 메모리가 부족 하 여 큰 결과를 할당할 수 없기 때문에 발생 합니다.참고 SSMS는 32 비트 프로세스입니다. 따라서 메모리가 2gb로 제한 됩니다. SSMS는 결과 창에서 데이터베이스 필드 별로 표시할 수 있는 텍스트 크기에 대 한 인공 제한을 부과 합니다. 이 제한은 "그리드" 모드와 "텍스트" 모드에서 8kb의 64입니다. 결과 집합이 너무 큰 경우 쿼리 결과를 표시 하는 데 필요한 메모리는 SSMS 프로세스의 2gb 제한을 surpass 수 있습니다. 따라서 큰 결과 집합을 통해 "현상" 절에 나와 있는 오류를 일으킬 수 있습니다.

해결 방법

이 문제를 해결 하려면 다음 방법 중 하나를 시도해 보세요.

방법 1: 결과를 텍스트로 출력 합니다.

쿼리 결과를 텍스트로 출력 하도록 쿼리 창을 구성 합니다. 텍스트 출력은 눈금 보다 적은 메모리를 사용 하므로 쿼리 결과를 표시 하는 데 충분할 수 있습니다. 이렇게 변경 하려면 다음 단계를 따르세요.

  1. 쿼리 창을 마우스 오른쪽 단추로 클릭 합니다.

  2. 결과를클릭 합니다.

  3. 결과를 텍스트로를클릭 합니다.

방법 2: 결과를 파일에 출력 합니다.

쿼리 결과를 파일로 출력할 쿼리 창을 구성 합니다. 파일 출력에는 최소 메모리 양이 사용 됩니다. 이렇게 하면 결과 집합을 저장 하기 위해 더 많은 메모리가 예약 됩니다. 이렇게 변경 하려면 다음 단계를 따르세요.

  1. 쿼리 창을 마우스 오른쪽 단추로 클릭 합니다.

  2. 결과를클릭 합니다.

  3. 결과 파일을클릭 합니다.

  4. 쿼리를 실행 한 다음 결과 파일을 저장할 위치를 선택 합니다.

방법 3: sqlcmd 사용

SSMS 대신 sqlcmd 도구 를 사용 하 여 SQL 쿼리를 실행 합니다. 이 메서드는 SSMS UI에 필요한 리소스 없이 쿼리를 실행할 수 있도록 합니다. 또한 64 비트 버전의 Sqlcmd를 사용 하 여 32 비트 SSMS 프로세스에 영향을 주는 메모리 제한을 방지할 수 있습니다.

상태

Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.

추가 도움이 필요하신가요?

기술 향상

교육 살펴보기 >

새로운 기능 우선 가져오기

Microsoft Insider 참가 >

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

의견 주셔서 감사합니다!

×