답변:
서버에 8GB의 RAM이 있고 4 개의 SQL Express 인스턴스를 실행하는 경우 SQL Server에서 사용하는 총 메모리 제한은 1GB 또는 4GB입니까?
각 인스턴스는 버퍼 풀에 최대 1GB의 메모리를 사용할 수 있습니다 . 모든 메모리 할당이 버퍼 풀을 통과하는 것은 아니기 때문에 각 인스턴스는 총 1GB를 약간 초과 할 수 있습니다. 귀하의 경우, 4 개의 인스턴스가 버퍼 풀에 사용하는 최대 메모리는 4GB입니다.
확인하기 위해 SQL Server 2008 Express 데이터베이스 엔진의 두 인스턴스 를 시작 하고 (별도의) 버퍼 풀을로드하기 위해 몇 가지 활동을 수행 한 다음 DBCC MEMORYSTATUS 또는 sys.dm_os_buffer_descriptors DMV를 사용하여 버퍼 수를 계산합니다 .
아래 의 실제 메모리 사용량 은 데이터베이스 엔진의 각 인스턴스 에서 시스템 DMV sys.dm_os_process_memory 에 대한 동시 쿼리를 사용하여 얻은 것입니다 .
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
산출:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
전체 물리적 메모리 사용량에는 앞에서 언급 한 것처럼 버퍼 풀 사용량 이상이 포함되므로 이들 각각은 1GB를 약간 초과합니다.
서버가 많은 자원을 가지고 있다고 가정 할 때 각 데이터베이스가 자원을 더 잘 사용할 수 있도록 이와 같은 다중 인스턴스를 실행하는 것이 바람직합니까?
각 인스턴스의 데이터베이스가 기능적으로 독립적 인 경우 최소한 이러한 방식으로 여러 Express 인스턴스를 실행하는 것이 가능하지만 구성에주의를 기울여야하고 유지 관리가 더 복잡해질 수 있습니다.
의도 한 용도가 라이센스와 일치하는 경우 완전한 기능을 갖춘 (그리고 매우 저렴한) Developer Edition과 같은 다른 에디션을 사용하는 것이 더 좋습니다. 이 시점에서 분명한 답변을 얻으려면 상황에 대해 더 많이 말해야합니다.
SQL Express 에서 데이터베이스 엔진은 1GB RAM 만 사용할 수 있으며 DB는 10GB보다 클 수 없습니다.
따라서 4 개의 인스턴스는 여전히 1GB RAM을 공유해야합니다.
http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx 에서 훨씬 더 자세한 내용을 확인할 수 있습니다 .
스택 오버플로에 대한 비슷한 토론에 따르면 이것이 BTW의 정답이라고 답할 수 있습니다.
이 페이지는 SQL Server Express 2005에 관한 내용에도 동일하게 적용됩니다. http://www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit- per-instance.html
Maximum memory utilized (SQL Server Database Engine)
그들은 라인에 것처럼 그들이 거기에 같은 용어를 사용하는 방법주의 사항 : Maximum Compute Capacity Used by a Single Instance (SQL Server Database Engine)1
(집에서 그 연주에, 그 지점은 동일한 측정 있다는 것입니다) msdn.microsoft.com/en-us/library/... 또한 나는 SO에 대한 답이 잘못 잘못되었습니다. "1 코어 또는 4 소켓"으로 시작하면 편집기는 복사하여 올바르게 붙여 넣기조차 할 수 없습니다.
SQL Server Database Engine
meansA Single Instance
. 연결할 새 대화 상자 서버 (예 :localhost\dev
vslocalhost\test
)를 새 "인스턴스"또는 새 "엔진" 으로 변경해야 할 때마다 . 그냥 정리하겠다고 생각 했어요