是否每个实例都有SQL Server Express内存和CPU限制?


32

如果服务器中有8GB RAM,并且运行4个SQL Server Express实例,那么SQL Server使用的总内存限制是1GB还是4GB?

明智的做法是运行多个实例,以使每个数据库都能更好地利用资源(假设服务器具有足够的资源)?

Answers:


27

如果服务器中有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的多个实例,尽管您需要特别注意配置,并且维护可能会变得更加复杂。

如果预期的用法与许可相匹配,则使用其他版本(例如功能全面(且非常便宜)的Developer Edition)可能会更好。您需要更多地谈论环境,以便在这一点上得到明确的答案。


3
另外值得注意的是,精明的读者:SQL Server Database Engine手段A Single Instance。每当您必须更改要连接到的连接对话框服务器(例如localhost\devvs localhost\test)时,它都是新的“实例”或新的“引擎”。只是以为我会澄清这一点。
jcolebrand

7

每个实例都具有独立的流程,因此各自独立。


1
我假设您确定限制器没有应用到所有进程中吗?

-8

在SQL Express中,数据库引擎只能消耗1 GB RAM,并且任何DB都不能大于10 GB。

因此,仍有4个实例必须共享该1 GB RAM。

您可以在http://msdn.microsoft.com/zh-cn/library/cc645993(v=SQL.110).aspx中找到更多信息。

此处关于堆栈溢出的类似讨论表示,顺便说一句,这是正确的答案,因此无需下注:https ://stackoverflow.com/questions/1169634/limitations-of-sql-server-express

即使关于SQL Server Express 2005,此页面也表示相同:http : //www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit- per-instance.html


3
不一定遵循-每个服务器或每个实例1个引擎吗?

1
好的,这确实暗示了这一点,但也有可能他们在内存限制行上错过了它。

1
仅仅因为它在互联网上,它必须是真实的。他们永远不会让互联网出现问题。〜说这儿的问题是,必须有一个管理流程或某种程序植入OS中,其唯一目的是永远限制所有SQL Express。我真的不认为这发生了(基于我呼吸氧气并能很好地遵循逻辑这一事实,也绝对没有发生),所以事实是,进程本身可以管理正在运行的RAM数量。用过的。
jcolebrand

2
不管人们引用了什么来源,乞求人们就不好的答案自然而然地删除否决票,并不太可能使您获得赞成票。如果您确实要引用源,请加载多个实例并在内存中显示其实际负载。那是唯一确定的唯一方法。或者,或者向我们显示控制SQL Express行为的Microsoft代码。它始终是按实例管理的,因为每个服务都是自上而下的。所有管理服务都通过端口工作。
jcolebrand

2
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的答案是WRONG WRONG WRONG。从“ 1核或4个插槽”开始,编辑器甚至无法正确地复制粘贴。
jcolebrand
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.