这是在 SQL Server 2019 上运行的,在具有 64GB 或 RAM 的 Windows 10 上运行。尝试解决内存问题时,我发现了一篇使用以下查询的帖子:
SELECT virtual_address_space_reserved_kb as Reserved,
virtual_address_space_committed_kb Committed,
physical_memory_in_use_kb as Physical
FROM sys.dm_os_process_memory
在我的服务器上运行查询产生以下结果:
Reserved Committed Physical
101,881,000 3,123,124 2,747,764
所以提交的内存比物理内存更多。我觉得这很奇怪,所以我重新启动了服务器,再次运行查询,数字发生了变化,但承诺仍然大于物理:
Reserved Committed Physical
102,000,616 2,259,624 1,743,392
这正常吗?如果没有,我的服务器是否存在严重问题?
我在 Windows 2008 R2 x64 机器上安装 SQL Server 2012 时遇到问题。
因为我的记忆似乎正在迅速消失(根据任务管理器图),但我看不到任何程序在使用它,所以我下载了 RAMMap 以更好地了解正在发生的事情。原来我所有的记忆都被 AWE 吞噬了。
我的内存很快就被 SQL Server 吃掉了,达到我允许实例拥有的最大值(当前为 3GB)。
然而,当我尝试研究这个时,每个人似乎都说 SQL Server 2012 64 位系统没有启用 AWE,因为它不需要;AWE 启用的扩展内存可直接访问。但是系统仍然会很高兴地在 AWE 中咀嚼内存,直到达到极限。
不知道还有哪些其他信息可以帮助诊断这一点……或者即使我完全误解了某些东西……我现在对此的了解已达到极限。请不要假设我有很多知识......虽然我通常精通技术,但我绝对不是 DBA。
我有一台带有以下内容的 SQL Server 机器:
我将最大服务器内存使用量设置为我认为可接受的值(合计约 10GB,为 Windows 留出 2GB)。我使用以下查询来显示缓冲池和非缓冲池的总 RAM 使用量。我还展示了 MAX SERVER MEMORY 设置。每个实例上的数据库都比分配的 RAM 大得多,即使有几个实例比其他实例得到了更多的使用。实际使用的内存不应该总是非常接近 MAX SERVER MEMORY 设置吗?我发现了一个让我好奇的差距。
DECLARE @TotalRam as decimal (10,2)
--NON-BUFFER POOL
SET @TotalRam = (SELECT sum(pages_allocated_count)/128.0 [Non-Buffer (MB)]
from sys.dm_os_memory_cache_entries
where pages_allocated_count > 0)
--BUFFER POOL
SET @TotalRam = @TotalRam + (
SELECT CAST(COUNT(*) * 8/1024.0 AS DECIMAL (10,2)) AS [Buffer Pool …Run Code Online (Sandbox Code Playgroud) 有没有办法在不重新启动 SQL Server 2012 的情况下减少它的 RAM 使用量?
设置 MAX 内存使用率不是一个选项,因为它会迅速增加到我设置的限制,然后基于此 SQL Server 实例的应用程序正在运行,没有响应或工作非常缓慢。
我想将整个数据库加载到内存中,但是我该怎么做呢?我有大约 256 GB 的内存,我的数据库大约有 200 GB,所以我可以轻松地处理内存。
当我执行select count(*) from table1sqlserver 自动将表加载到内存之后,我可以非常快速地使用表,但我想知道如何将整个数据库加载到内存中?
如果我select count(*) from在每个表上都这样做,我可以更快地工作,但是有没有其他方法可以将整个数据库加载到内存中?我想通过一个命令加载整个数据库,而不是一个select count(*) from表一个表。
每天我们都会在特定时间段 (03:00 AM - 04:00 AM) 收到一条警报,表明页面预期寿命太低:
SCOM:警报:SQL DB 2008 引擎页面预期寿命太低
我们已查看在此期间是否正在运行任何内存密集型操作,但未发现任何内容。
我们假设原因是通过 Windows 服务运行的查询导致缓冲区缓存中的页面寿命达到非常低的值(8 - 22 秒)
解决此问题的好方法是什么?
感谢奥萨马·瓦利
我有一台服务器,它被重新用于 SQL Server。它带有比我的操作系统 (Windows Server 2008 R2) 可以看到的 32GB 更多的物理内存。
管理层希望我将 SQL (SQL Server 2008 R2 Service Pack 3) 使用的最大服务器内存配置为高于操作系统所看到的。我可以通过 SQL Server Management Studio 在 SQL Server 的属性中更改它。SQL Server 能否使用额外的 RAM?还是会耗尽操作系统可用的所有内存?
昨天我敲打我的 SQL Server 实例大约 3 个小时,运行密集计算,消耗了所有分配的物理 RAM (由于我的工作站硬件有限,我将它限制为 2GB),突然它(和许多其他东西?)释放了所有他们的内存明显切换到专门使用页面文件。
在我被迫重新启动之后,我的计算机出现了令人难以置信的滞后(仅访问电源选项就花了 10 分钟)。
我能够在重新启动之前获得任务管理器的屏幕截图(我以低更新速度在后台运行)。调整窗口大小以显示最大历史记录后,如下所示:
这种令人惊讶的行为导致了停机。这是记录在案的功能吗?
我正在运行带有 Enterprise 2014 数据库引擎的 Windows Server 2008 R2。
谢谢。
我max_server_memory在我们的生产 SQL Server 上将设置配置为 141 GB,目标/总服务器内存为 144 GB。
我认为max_server_memory代表我愿意让 SQL Server 引擎使用多少内存,如果是这样,为什么它使用更多?
运行 SQL Server 2012 SP3,安装了 160 GB 内存的物理机,机器上没有运行其他实例,但我们也在运行集成服务。
我们有 75 个用户数据库,总大小为 928 GB。我不确定是否正在使用列存储,或者我如何检查它。这是一个供应商应用程序。
现在目标内存 = 144,384,008,总计 = 144,378,261。
该实例自美国东部时间昨晚 2019-05-01 22:20:21.097 以来一直在运行。我们有一些基础设施维护需要停止实例。但是,我注意到很长一段时间以来,总/目标始终为 144,而最大值始终设置为 141。周一至周五主要工作时间的 PLE 平均约为 0.5 到 1 小时,有时会跳至 2 小时.