Windows 2016 上的 SQL Server 2016 标准版
我们有一台 8 核、128GB 的机器(实际上是一个虚拟机)。我们为我们的产品数据库最大化了这一点。(实例122GB,实例8核)
我们正在设置第二个数据库,位于其自己的主轴集(较慢的磁盘)上,并且不希望它影响产品数据库。这将在同一个 VM 上(据我们了解,我们可以通过这种方式使用现有的 SQL 许可证)。
这第二个数据库必须由它自己的 SQL 实例提供服务,以便:
- 限制 RAM 消耗(非常少,只有 4 或 8 GB)
- 限制为 2 个 CPU 内核
或者我们可以在主实例中限制这个数据库吗?
(注意,Express Edition 不是一个选项,我们的数据库将超过 10 GB)
你不能。没有每个数据库的限制,因为查询可以跨多个数据库(想想联接和完全限定的对象。)
SQL Server 的资源调控器理论上存在支持这一点,但它仅适用于 CPU 计数、查询工作区内存和磁盘 IO 等内容。它不适用于缓冲池,因此仍然无法满足您的需求。
不确定您的许可是否允许这样做,但您可以通过在同一主机上安装第二个 SQL 实例来获得某种程度的微调控制。
有了它,您可以单独设置每个实例的最大内存,甚至可以调整每个实例的 CPU 设置(处理器亲和性)(尽管在弄乱它之前您应该真正了解此设置)。
问题是即使在这种情况下,如果管理层问我:“你能保证这不会影响主实例上的生产数据库吗”,我必须回答“不,我不能保证”。为此,您希望在完全独立的 VM 上运行。