zoukankan      html  css  js  c++  java
  • 关于SQL Server的内存占用问题.

    以前做过一个通过c#调用Excel组件生成Excel的小程序
    前几天PM打过电话来问, 说跑完以后为什么SQL Server内存占用这么大?
    服务器配置2G的内存, 程序正常执行完毕以后退出, SQL Server占用内存在1.7G, 而且没有被释放.

    因为怕可能会影响这个服务器上的其它应用程序, 所以必须要解决一下或者说明一下原因.

    最后查了一下关于SQL Server的介绍, 发现其为了优化性能, 所以本来的机制就是如下的
    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;321363

    概要如下:

    在您启动 SQL Server 之后,SQL Server 内存使用量将会持续稳定上升,即使当服务器上活动很少时也不会下降。另外,任务管理器和性能监视器将显示计算机上可用的物理内存稳定下降,直到可用内存降到 4 至 10 MB 为止。

    仅仅出现这种状态不表示内存泄漏。此行为是正常的,并且是 SQL Server 缓冲池的预期行为。

    默认情况下,SQL Server 根据操作系统报告的物理内存加载动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止内存页面交换(在 4 至 10 MB 之间),SQL Server 缓冲池就会继续增大。像在与 SQL Server 分配内存位于相同计算机上的其他进程一样,SQL Server 缓冲区管理器将在需要的时候释放内存。SQL Server 每秒可以释放和获取几兆字节的内存,从而使它可以快速适应内存分配变化。
  • 相关阅读:
    ubuntu上搭建review board代码评审站点
    android5.1 for tq335x
    2015.04.11
    DECLARE_GLOBAL_DATA_PTR宏定义问题
    6410移植android4.4.2笔记(持续更新)
    ubuntu安装packet提示重复冲突问题
    android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)
    2015.01.16
    2015.01.14
    SDSM框架
  • 原文地址:https://www.cnblogs.com/index/p/333975.html
Copyright © 2011-2022 走看看