1

우리는 응용 프로그램의 데이터베이스를 SQL Server 2005 만 실행하는 전용 상자에서 실행합니다. 이 DB 서버에는 32GB의 RAM이 있으며 데이터베이스 파일 자체는 6GB입니다.메모리의 SQL Server 2005 "Pin"데이터

많은 읽기/쿼리 테이블을 SQL 메모리 버퍼에 강제로 적용하여 속도를 높이고 싶습니다.

나는 SQL 서버가 디스크에서 읽은 후에 필요한 데이터를 메모리에 캐시하는 것을 정말로 잘 알고 있다고 생각한다. 그러나 우리 고객들은 아마도 그들의 쿼리를 빨리 실행하는 것을 선호 할 것이다. "가장 빠른 성능 두 번째 시간"은 정확하게 제품 하이라이트가 아닙니다.

오래된 "핀 테이블"DBCC 명령의 짧은 .. 어떤 생각?

"CacheTableToSQLMemory"Proc는 모든 테이블의 인덱스 (클러스터 & Non)를 반복하며 Temp 테이블에 "Select *"를 수행합니다. SQL Agent가 메모리에 페이지를 유지하려고 15 분마다 "테이블을 많이 캐시"Proc를 실행하도록 예약했습니다.

그것은 많은 범위에서 작동하지만 쿼리의 관련 테이블을 모두 캐시 한 후에도 쿼리를 실행해도 해당 테이블의 캐시 된 페이지 수는 계속 증가합니다. 두 번째로 빠릅니다. 생각?

우리는 PAE & AWE를 실행 중입니다. SQL은 8 & 20GB RAM 사이에서 사용하도록 설정됩니다.

+1

PAE와 AWE는 '2GB의 가상 주소 공간을 가진 진부한 x86 인스턴스를 계속 실행하고 있습니까?'와 같이 설정합니까? –

+0

... 알아요 ... OS 업그레이드를 추진 중입니다 ... –

+0

Windows 버전은 무엇입니까? 64 비트 나는 희망한다. 그렇지 않다면 대답은 우스운 일이다. – smirkingman

답변

6

x86 병목 현상이 가장 큰 문제입니다. AWE는 AWE 영역 안팎으로 매핑 될 수 있기 때문에 데이터 페이지 만 제공 할 수 있지만 다른 모든 메모리 할당은 프로세스 가상 주소 공간의 2GB를 채워야합니다. 여기에는 모든 스레드 스택, 모든 코드, AWE의 '사용중인'모든 데이터, 가장 중요한 것은 모든 단일 캐시 계획, 실행 계획, 캐시 된 보안 토큰, 캐시 된 메타 데이터 등이 포함됩니다. CLR을 계산하지도 않고, 사용하지 않기를 바랍니다.

시스템이 RAM 32GB의를 가지고 있음을 감안할 때, 당신도 ...

/3GB를 시도하고 그 때문에 절반 RAM 보이지 않게 할 경우에 16GB의 총 PAE 감소, 도움이되는지 볼 수 없습니다

정말로, x64로 이동해야합니다. AWE는 그만큼 도움이 될 수 있습니다.Buffer ManagerMemory Manager 개체의 성능 카운터를 수집하고 sys.dm_os_memory_clerks을 모니터링하면 인스턴스 메모리가 어떻게 작동하는지 (사용중인 메모리는 어디로 이동했는지, 누가 그것을 사용하고 있는지 등)보다 나은 그림을 얻을 수 있습니다. 나는 그것이 당신이 정말로이 문제를 푸는데 도움이 될 것이라고는 기대하지 않지만, x64 로의 업그레이드를위한 충분한 정보를 줄 것으로 기대합니다.

2

SQL Server 2005에서 메모리에 테이블을 고정 할 방법이 없습니다. SQL Server가 메모리에서 테이블을 삭제하면 시스템의 다른 부분에서 메모리가 부족하기 때문입니다. 데이터베이스가 6GB에 불과하기 때문에 서버에 다른 데이터베이스가 없다면 데이터베이스는 메모리에 남아 있어야합니다.

메모리에 데이터를 유지하려고 할 수있는 몇 가지 방법이 있습니다. 패치 수준과 SQL Server 설치 버전에 따라 lock pages in memory 기능을 사용하여 SQL Server의 메모리가 절대로 페이지 아웃되지 않도록 할 수 있습니다.

서버의 메모리 할당을 고정 된 크기로 변경할 수도 있습니다. 데이터베이스 서버에 다른 것이 없으면 SQL Server의 최소 및 최대 메모리를 동일한 값으로 설정할 수 있습니다. 이것은 반드시 미래에 일어나는 것을 막을 수는 없습니다 (SQL Server의 작동 방식에 따라 달라질 수 있습니다). 그러나 고정 된 양의 메모리를 사용하도록 SQL Server를 설정하는 것은 결코 어렵지 않을 것입니다. 메모리 문제).