2

我正在管理一个同时运行 IIS 和 SQL 08 express 的 co-located winserver08 框。我只是碰巧看了一眼任务管理器的性能选项卡,发现“内存使用历史记录图接近最高,读数为 1.8 gig(我有 2 gig 物理内存)。Processes 显示 sqlserver 以 940,000K 的速度运行 - 迄今为止最大的消费者。

我是一个低容量站点 - cpu 利用率几乎没有注册。服务器根本没有任何稳定性问题。这只是 SQL 处理可用内存的方式还是我应该深入挖掘?

谢谢

4

4 回答 4

5

SQL Server 管理它自己的内存池。它将在内存压力下将内存释放回操作系统。

所以,是的,这是正常行为,无需担心。

注意:我应该提到一个例外:如果 TSQL 脚本使用 sp_OACreate 来创建 COM 对象,并且没有使用相应的 sp_OSDestroy 释放对象(例如,发生错误并且脚本过早终止),那么内存可能会泄漏。这些存储过程的使用并不常见(许多 DBA 不允许打开此功能,这是有充分理由的)我相信对于未释放的 CURSORS 也是如此。

于 2009-06-29T15:18:46.367 回答
0

除非您已配置,否则这是正常行为。阅读本文以清楚地了解内存配置和建议。

在你的情况下,我假设你有默认设置,你看到的是正常的,没有理由担心。

拉吉

于 2009-06-29T15:23:27.653 回答
0

请记住,与任何标准版本(即任何非 Express 版本)相比,SqlExpress 可能以不同的方式管理内存。我无法提供具体的链接,但是从个人经验来看,当您迁移到 SQLServer 的正确分布(速度、内存管理、极端条件下的响应能力等)时,情况会发生很大变化。

如果有人知道更多,请整合我的答案。

于 2009-06-29T15:24:14.423 回答
0

如果没有上限,SQL Server 将使用机器内存 90% 的区域。这是完全正常的,因为 SQL Server 正在为自己管理内存并会在必要时释放内存。

如果您担心它可以限制 SQL Server 可以使用的内存量,请转到 sqlexpress 实例的属性,选择内存页面,然后减少最大服务器内存。

于 2009-06-29T15:47:25.187 回答