않을 가상 메모리가 부족하여 SQL Server 데이터베이스 많은 수의 있을 때

기술 자료 번역 기술 자료 번역
기술 자료: 316749 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

현상

없을 수 사용 가능한 가상 주소 공간이 부족하여 Microsoft SQL Server 프로세스에서 기본 구성 값 SQL Server를 실행하는 경우 다음 조건이 모두 참인 경우:
  • 서버에 2 GB 이상의 RAM이 있어야 합니다.
  • 데이터베이스 시스템 (예: 500개 이상의) 많은 수의 있습니다.
  • 데이터베이스는 대부분 업데이트됩니다 (예를 들어, 데이터베이스를 읽기 전용"상태가 없는).
  • 충분한 동시에 현재 사용자 연결을 255 SQL Server 작업자 스레드가 대부분 사용할 수 있습니다.
전체 2GB의 가상 주소 공간이 사용된 후 SQL Server 다음과 같은 오류 메시지가 나타날 수 있습니다 (또는 전체 3 GB 가상 주소 공간을 가진 SQL Server 엔터프라이즈 버전 사용됩니다 후 해당 /3 GB Boot.ini 파일에서 전환).

메시지 1

오류: 17802, 심각도: 18, 상태: 3
서버 이벤트 스레드를 만들 수 없습니다.

메시지 2

SQL Server process_loginread 스레드를 생성할 수 없습니다.

메시지 3

경고: 연속 메모리를 프로시저 캐시를 클리어링.

버퍼 배포: 도난 3454 = 2540 프로시저 자유 = 138 =
Inram 0 = 더티 상태로 1108 = 35 =
I/O = 0 래치 = 0, 기타 214821 =
버퍼 개수: 커밋된 222096 대상 = 해시된 222096 = 215964 =
InternalReservation 547 ExternalReservation = 0 최소값 = 자유 512 =
프로시저 캐시: TotalProcs TotalPages 8 = 138 InUsePages = 138 =
동적 메모리 관리자: 도난 3556 =
OS 497 일반 = 1706 =
쿼리 계획 755 최적화 = 0 =
유틸리티 9 연결 = 1583 =
전역 메모리 개체: 자원 1119 잠금 = 163 XDES = 1 SQLCache = 90 복제 = 5 LockBytes = 2 ServerGlobal = = 20
쿼리 메모리 관리자: 허용할 0 대기 중 = 0 최대 = 164370 = 가능한 164370 =

원인

업데이트된 각 데이터베이스에 대해 적어도 하나의 64 KB 블록 알림이 작성된 전에 로그 레코드를 서식을 사용할 SQL Server 할당합니다 디스크에. 첫 번째 로그 레코드가 데이터베이스에 대해 같은 동안 INSERT, UPDATE 또는 DELETE 문을 생성할 때 이 할당이 발생합니다. 작업 및 생성된 로그 레코드 크기에 따라 후속 수정 할당 추가 64 KB 할당 트리거할 수 있습니다. SQL Server 7.0 두 개 이상의 세 개의 54 KB 블록을 할당합니다. 각 데이터베이스 프로세서 함수에 대한 SQL Server에서 2000, 할당 상한 숫자 SQL Server가 사용하도록 구성되어 있습니다.

해결 과정

사용하고 있는 -g 이러한 할당을 데이터베이스에 대해 사용할 수 있는 추가, 예약되지 않은 가상 메모리 두려면 시작 매개 변수. 해당 -g 매개 변수는 SQL Server 7.0 서비스 팩 Readme.txt 및 SQL Server 2000 온라인 설명되어 있습니다. 다음 "추가 정보 설정에 대한 적절한 값을 확인하려면 사용하는 좋습니다 설정은 섹션에는 이 문서의".

추가 정보

2 GB 이상의 RAM을 가진 컴퓨터에서 버퍼 풀에 사용할 모든 SQL Server 예약합니다 있지만 256 MB (SQL Server 7.0) 또는 시작 동안 가상 주소 공간의 384 MB (SQL Server 2000) 처리합니다. 또한 데이터 및 프로시저 캐시를 저장하는 데 SQL Server 버퍼 풀 메모리가 8 KB 미만으로 SQL Server 프로세스에서 다른 대부분의 메모리 요청을 처리하는 데 사용합니다. 나머지 예약되지 않은 메모리 버퍼 풀에서 서비스할 수 없는 다른 할당 함께 사용하기 위한 것입니다. 이러한 할당은 다음이 포함되지만 국한되지 않습니다.
  • 스택과 관련된 스레드 환경 블록 SQL Server에서 만드는 모든 스레드에 대해. SQL Server 255 작업자 스레드가 모두 만든 후 약 140 MB 것입니다.
  • 다른 DLL 변경한 또는 있는 프로세스가 할당을 같은 시스템에 따라 다름) 하는 SQL Server 주소 공간에서 실행 중입니다.
    • 연결된 서버에서 모든 OLE DB 공급자입니다.
    • sp_OA 시스템 사용이 로드된 COM 개체를 저장 프로시저 또는 확장 저장된 프로시저.
  • 저장 프로시저를 일반적으로 sp_OA, 연결된 서버를 사용하는 경우 20 25 MB, 아마도 보다 사용해야 하지만 또는 확장 주소 공간에 로드되는 모든 이미지 (.exe 또는 .dll).
  • 프로세스에서 힙 및 SQL Server 만들 수 있는 힙. 시작 프로세스 중에 이 대개 10 MB 수 있지만 연결된 서버나 sp_OA 확장된 저장된 프로시저를 사용하는 경우 자세한 수 있습니다.
  • 많은 쿼리 계획이 필요한 것과 같은 8 KB 보다 큰 SQL Server 프로세스 할당을 보내고 네트워크 패킷 크기를 구성 옵션이 8 KB 등으로 가까운 경우 버퍼를 받습니다. 이 번호를 보려면 DBCC MEMORYSTATUS 보고되고 8 KB 페이지 수를 보고하는 OS 예약 값을 찾습니다. 이 일반적인 값은 5 MB 입니다.
  • 버퍼 풀에 각 버퍼에 대한 상태 정보를 추적할 수 있는 배열. 이 경우에는 상당히 높은 Press의 주소 창 작업 확장 (, AWE 함께) SQL Server를 실행하는 않으면 일반적으로 약 20 MB 있습니다.
많은 데이터베이스 시스템에서 나머지 가상 메모리의 모든 서식을 로그에서 필요한 64 KB 할당 차지할 수 있습니다. 이 시점에서 후속 할당, "현상" 에 나와 있는 오류 중 하나 이상을 결과 실패할 수 있습니다 이 문서의 섹션을.

사용하여 해당 -g 시작 매개 변수를 SQL Server를 사용 가능한 가상 메모리를 두십시오 이러한 로그 관련 할당 및 다른 기본 할당의 조합을 가상 주소 공간이 실행할 지시할 수 있습니다.

일부 시작 지점을 위한 제안 목록이 표에서는 해당 -g 데이터베이스 및 서버 버전 수에 따라 값:
표 축소표 확대
데이터베이스SQL Server 7.0SQL Server 2000
250-g134N/A
500-g185N/A
750-g237N/A
1000-g288-g288
1250-g340-g340
1500-g392-g392
이 테이블에 나열된 일반적인 값을 사용하여 계산된 및 연결된 서버 활동, sp_OA 또는 확장된 저장된 프로시저 사용 중인 가정 또한 기반으로 합니다. AWE를 사용하지 않는 및 해당 SQL 프로필러를 사용하지 않는 가정 하에 기초합니다. 이러한 조건 중 하나라도 값을 늘려야 할 -g.

많은 가상 메모리를 전체적으로 시스템 성능이 저하될 결과 버퍼 풀에 멀리 걸리는 시스템에서 이 데이터베이스 수가 필요 필요한 오버헤드 때문에 사용자가 서버를 이보다 더 많은 데이터베이스와 함께 실행하기 전에 고려해야 할 사항은 심각한 거치게 하는 것이 좋습니다.

또한 데이터베이스 많이 만드는 가상 메모리의 가장 큰 효과가 없습니다. 또한 버퍼 풀 메모리 부족 상태를 일으킬 수 있는 데이터베이스 당 메모리 할당이 있습니다. 예를 들어, 다음과 같은 오류 메시지가 나타날 수 있습니다.
오류: 701, 심각도: 17, 상태: 123.
이 쿼리를 실행하기 위한 메모리가 부족하여 시스템입니다.
SQL Server 2005 이전 버전의 SQL Server 보다 더 많은 데이터베이스 당 메타데이터를 추적하기 때문에 이러한 종류의 메모리 부족 조건 SQL Server 2005에서 보다 일반적인 수 있습니다.

sys.dm_db_index_usage_stats 저장 프로시저를 사용하여 인덱스 사용을 추적하는 경우 작업이 상당한 메모리가 필요할 수 있습니다. 각 데이터베이스를 인덱스가 많은 경우 작업에 상당한 양의 메모리가 필요합니다.

속성

기술 자료: 316749 - 마지막 검토: 2007년 2월 28일 수요일 - 수정: 11.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
키워드:?
kbmt kberrmsg kbtshoot kbnofix kbprb KB316749 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com