SQL内存使用情况

时间:2009-06-29 15:15:45

标签: sql-server sql-server-2008 sql-server-2012

我正在管理一个同时运行IIS和SQL 08 express的winserver08盒子。我刚刚看了一眼任务管理器的性能选项卡,发现'内存使用历史图表已接近顶部读取1.8 gig(我有2 gig物理内存)。进程显示sqlserver以940,000K运行 - 迄今为止最大的消费者。

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

THX

4 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:0)

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

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

拉​​吉

答案 2 :(得分:0)

考虑到与任何标准版本(即任何非快速版本)相比,SqlExpress可能以不同的方式管理内存。 我无法提供具体的链接,但从个人经验来看,当你转向适当的SQLServer分发(速度,内存管理,极端条件下的响应等)时,事情会发生很大的变化。

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

答案 3 :(得分:0)

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

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