Sql-Server

每個實例的 SQL Server Express 記憶體和 CPU 限制嗎?

  • December 3, 2012

如果我在伺服器中有 8GB 的​​ RAM 並執行 4 個 SQL Server Express 實例,SQL Server 使用的總記憶體限制是 1GB 還是 4GB?

是否建議像這樣執行多個實例以使每個數據庫能夠更好地利用資源(假設伺服器有大量資源)?

如果我在伺服器中有 8GB 的​​ RAM 並執行 4 個 SQL Express 實例,SQL Server 使用的總記憶體限制是 1GB 還是 4GB?

每個實例最多可以為緩衝池使用 1GB 記憶體。每個實例總共可以使用超過 1GB 的空間,因為並非所有記憶體分配都通過緩衝池進行。在您的情況下,緩衝池的四個實例使用的最大記憶體為 4GB。

BOL 提取物

為了確認,我啟動了 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 實例至少是可行的,儘管您需要特別注意配置和維護可能會變得更加複雜。

如果預期用途與許可證相匹配,則使用其他版本可能會更好地為您服務,例如功能齊全(且非常便宜)的開發人員版)。你需要更多地說明情況才能在這一點上得到明確的答案。

引用自:https://dba.stackexchange.com/questions/29712