-
701 에러 코드 대처 방법프로그래밍 JAVA 2020. 7. 13. 21:47
701 에러 코드 대처 방법
대량 데이터 로드 중 또는 메모리 사용량이 많은 작업 중에 데이터베이스 인스턴스가 직면할 수 있는 SQL Server 메모리 문제에 대해 설명하고자 한다.
또한 SQL Server에서 대용량 데이터 세트에 대한 수많은 쿼리를 동시에 실행하려고 할 때 메모리 부족 문제가 발생할 수 있다.
이러한 경우 SQL Server는 오류 701 또는 오류 802를 "이 쿼리를 실행할 시스템 메모리가 부족함"이라는 오류 텍스트로 발생시킨다. 두 오류 코드에 대한 전체 오류 설명은 아래에 제시되어 있다.
오류 701, 심각도: 17, 상태: 193.
시스템 메모리가 부족하여 이 쿼리를 실행할 수 없음.
아니면
오류 802, 심각도: 17, 상태: 20
버퍼 풀에 사용 가능한 메모리가 부족함.
오류 701 또는 오류 802: 근본 원인SQL Server에 메모리가 부족하여 트랜잭션에 할당할 수 있는 메모리가 더 이상 없는 경우 SQL Server 메모리 오류 701 또는 오류 802가 생성된다.
대용량 데이터 로드 또는 기타 메모리 집약적인 작업으로 인해 SQL Server 메모리 압력 또는 메모리 부족 문제가 발생할 수 있음
우리는 SQL Server의 현재 메모리 상태에 대한 최신 스냅샷을 얻기 위해 DBCC MEMORYSTATUS 출력을 확인해야 한다. 이 명령은 SQL Server의 메모리 문제를 해결하는 데 매우 유용하다.
시스템에 메모리가 부족하기 때문에 이 DBCC 명령을 실행하지 못했을 수도 있다.
일부 프로세스를 중지하거나 중지하여 메모리 압력을 낮춘 다음 이 명령을 실행하여 SQL Server 메모리 상태에 대한 심층 정보를 수집하십시오.
메모리 압력으로 인해 실패하고 오류 701 또는 오류 802가 발생한 트랜잭션은 이 오류의 원인이 될 수도 있고 아닐 수도 있다. 우리는 추세를 분석해서 어떤 결론에 도달해야 한다.
해결책
대부분의 SQL Server 시스템에서 SQL Server 메모리 문제를 얻는 데는 주로 두 가지 이유가 있다.당신의 서버에 현재의 일상적인 작업량을 처리할 메모리가 적거나 당신은 대량 데이터 부하, 복잡한 보고서 등과 같이 그들의 실행을 위해 더 많은 메모리를 필요로 하는 일부 임시 트랜잭션을 실행하고 있다.
일상적인 작업 중에 SQL Server가 메모리가 부족하여 실행 중인 경우 총 워크로드를 심각하게 평가하고 현재 워크로드를 처리할 수 있는 최적의 메모리 크기를 제안하십시오.
만약 당신이 어떤 무거운 임시 트랜잭션을 실행할 계획이라면, 당신은 트랜잭션을 원활하게 처리할 수 있는 메모리를 일시적으로 늘려야 한다.
또는 당신은 그러한 부하를 처리하기 위해 만들어진 서버에서 그러한 트랜잭션을 실행해야 한다. 시스템에 가장 적합한 배치 크기를 줄이는 것도 고려해야 한다.
SQL Server는 메모리 집약적인 응용 프로그램이다.우리는 SQL Server 인스턴스에서 실행될 서버 상태와 전체 로드를 적절하게 평가한 후 서버에 대한 메모리 크기를 계획해야 한다.
그러나 SQL Server 중 하나에서 메모리 문제가 발생하면 먼저 문제를 해결하고 이 메모리 압력의 근본 원인을 찾아야 한다.
여기서 나는 메모리 문제를 일으키는 실제 범인과 메모리 오버헤드를 줄일 수 있는 가능한 해결책을 찾기 위한 단계별 방법을 알려주고 있다.
먼저 SQL Server 인스턴스가 다른 응용 프로그램이 아닌 전용 서버에서 실행되고 있는지 확인하십시오. 다른 응용프로그램도 데이터베이스 서버를 사용하고 있는 경우, 메모리의 대부분을 사용하지 않는지 확인하십시오.그리고, 시스템 메모리의 대부분을 다른 응용프로그램이 사용하는 경우, 데이터베이스 서버에서 해당 응용프로그램 마이그레이션을 진지하게 고려해 보십시오.
이러한 애플리케이션을 다른 서버로 마이그레이션할 수 없는 경우 이러한 문제에 대한 해결 방법은 최대 메모리 값을 SQL Server 인스턴스에 할당하는 것이다.sp_configure를 사용하거나 GUI를 사용하여 SQL Server 인스턴스의 최대 메모리 값을 변경하려면 첨부된 문서를 읽어보십시오.
SQL Server 메모리 할당 및 MIN/MAX Server 메모리 구성의 역할 이해
다음으로 확인해야 할 것은 서버 메모리 구성이다. 아래 SQL Server 메모리 구성 매개 변수 확인:
최대 서버 메모리
최소 서버 메모리
쿼리당 최소 메모리
비정상적인 설정을 확인하고 필요에 따라 수정하십시오. 위의 첨부 문서에서는 위의 세 가지 옵션 모두 구속에 대해 다루었다.
이제 동시 세션 수 측면에서 워크로드를 확인하여 메모리 권한과 함께 현재 쿼리를 실행하십시오. 막대한 메모리 값을 추구하는 SQL Server 트랜잭션에도 집중해야 한다. 트랜잭션을 보고 메모리 집약적인 높은 작업에 대한 보고서를 수집하십시오.평가한 후 가능하면 최소 메모리를 확보할 수 있도록 최적화하십시오.
메모리 대기 유형 리소스 이해_세마포어랑 어떻게 고치는거야?
아래 DBCC 명령을 실행하여 여러 SQL Server 메모리 캐시를 확보하십시오. 이렇게 하면 현재 실행 중인 트랜잭션에 대한 안도감과 도움이 되지만, 더 오래 실행하면 시스템이 트랜잭션을 진행하기 위해 더 많은 메모리가 필요한 경우 도움이 되지 않는다.
DBCC 프리즈시스템캐쉬
DBCC 프리세션캐쉬
DBCC FREEProCCACHE
메모리 상태를 확인하는 또 다른 효과적인 방법은 DBCC MEMORYSTATUS 명령의 출력을 얻는 것이다. 당신은 범죄 기억 소비자들을 조사할 수 있는 좋은 출발점을 얻을 것이다.
우리는 또한 메모리에 대한 성능 모니터 카운터를 수집하기 시작할 수 있다. SQL Server 값과 같은 Perfmon 카운터:Buffer Manager\Buffer Cache 적중률, SQL Server: 메모리 매니저와 페이지 기대 수명은 SQL Server 시스템에서 메모리 압력을 식별하는 데 매우 유용할 것이다.
이러한 카운터에 대한 추세를 분석한 다음 특정 운영 중에 문제가 발생하는지 또는 시스템이 지속적으로 메모리 압력에 직면하고 있는지 여부를 결정하십시오.
'프로그래밍 JAVA' 카테고리의 다른 글
JAVA JSONIQ 의 기초 ( JSON ) (0) 2020.07.14 SQL의 기원과 역사 미래 (0) 2020.07.14 자바 랜덤클래스 (JAVA RANDOM CLASS 분석 ) (0) 2020.07.06 JAVA UPCASTING VS DOWNCASTING (자바 업캐스팅) (0) 2020.07.03 JAVA STREAM 사용법 (자바 스트림 사용법) (0) 2020.07.01