2009-02-10 3 views
0

우리는 64 비트에서 SQL Server 2005를 실행하고 있습니다. PF 사용량은 매주 25GB에 가깝습니다. 일반적으로 실행되는 데 걸리는 시간이 1 초 미만인 쿼리는이 시간 동안 매우 느려집니다. 무엇이 이것을 일으킬 수 있습니까?SQL Server에서 높은 PF 사용

PerfMon을 실행 한 후 총 서버 메모리와 대상 서버 메모리는 각각 20GB와 29GB를 표시합니다. 프로세서 대기열 길이 및 디스크 대기열 길이는 0입니다.

+0

: # SQLServer : 버퍼 관리자 - 버퍼 캐시 적중률 # SQLServer : 버퍼 관리자 - 페이지 수명? – jfar

+0

또한 Proc 및 디스크 대기열 길이는 중요하지 않습니다. 메모리 문제가 있습니다. – jfar

+0

예. Proc와 Disk는 문제가되지 않습니다. SQL Server가 범인인지 확인하기 만하면됩니다. 버퍼 캐시 적중률은 지난 3 일 동안 지속적으로 99.8 % 였고 페이지 수명은 어제 11605였습니다. –

답변

3

메모리가 부족하여 서버에 얼마만큼의 소리가 들릴까요? 귀하의 페이지 파일 이상입니까?

또한 Sql Server는 메모리에 저장된 모든 정보를 디스크에 저장하기로 결정한 것을 의미하는 "페이지 아웃"을 의미 할 수 있습니다.

열기 성능 모니터 (고토 명령 프롬프트를 perfmon을 입력) 및 이러한 카운터 추가

  • 의 SQLServer : 버퍼 관리자 - 버퍼 캐시 적중률
  • 의 SQLServer : 버퍼 관리자 - 페이지 수명
  • 을 SQLServer : 메모리 관리자 - 메모리 보조금 보류 중

버퍼 캐시 적중률이 < 인 경우 SQL 대신 Sql이 메모리 대신 디스크를 사용하고 있음을 의미합니다. 더 많은 메모리.

예상 수명이 <00이면 SqlServer가 결과를 메모리에 캐시하지 않는다는 의미이므로 메모리가 더 필요합니다.

메모리 권한 보류중인 경우 많은 메모리가 필요합니다.

또한 SqlServer가 원하는 메모리 양과 실제로 사용 된 메모리 양을 알려주는 두 가지 통계가 있습니다. 그들은 "Total Memory Used"와 "Total Memory Requested"와 같이 불립니다. If Requested> Used를 선택하면 더 많은 메모리가 필요합니다.

또한 메모리를 확보하기 위해 대기하는 동안 쿼리가 보류 중인지 확인하는 데 사용할 수있는 일부 dmv가 있습니다. 나는 sys_dmv.os_wait_stats 같은 것을 생각한다.

커뮤니티에서 위키를 통해 실제 dba를 가져 와서 정리할 수 있습니다. 내 머리 꼭대기에서 통계를 모릅니다.

1

이것은 DMV를 사용하여 sql : http://technet.microsoft.com/en-us/library/cc966540.aspx에서 메모리 소비를 확인하는 방법에 대한 유용한 정보입니다. '메모리 병목 현상'섹션을 찾으십시오.

하나의 큰 문제는 메모리 압력이 SQL 내부 (대개의 경우) 또는 외부 (희귀하지만 가능한지) 내부인지 확인하는 것입니다. 예를 들어, 서버에 문제가있는 것은 아니지만 바이러스 백신 프로그램에서 설치 한 드라이버가 메모리를 유출하고 있습니다.

관련 문제