AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 108192
Accepted
Rob Farley
Rob Farley
Asked: 2010-02-01 21:29:41 +0800 CST2010-02-01 21:29:41 +0800 CST 2010-02-01 21:29:41 +0800 CST

如何让 SQL Server 释放其内存?

  • 772

我知道 SQL 喜欢 RAM,但在 Windows 询问时会释放它。我知道这就是 SQL 应该如何工作的。但是我有一个 Windows 管理员,他不相信 SQL 会真正返回 RAM,并且在这个特定的(虚拟)服务器上,一旦 Analysis Services 完成,SQL 就不需要太多了,但是这台服务器上没有其他东西可以打扰多问 SQL。

所以我试图向 Windows 管理员保证虚拟环境的问题不是“因为 SQL 使用了太多的 RAM”,但我似乎无法说服 SQL 在不重新启动服务的情况下释放它。

在处理多维数据集时,SQL 服务很高兴地占用了 8GB 的​​ RAM,但由于它没有压力,所以它在正常的一天不会释放太多。Windows 的人尖叫,让 SQL 发布这个会更好。

我不想使用最大内存设置,因为我确实希望 SQL 在处理时使用那么多 RAM。我只是希望它之后再次下降。

它可能是SQL Server not release Memory和Reclaiming memory from SQL Server的副本,但我想知道是否有不同的答案。等待 Windows 收回它并不能说服这里的 Windows 人。重新启动服务是一种选择,但我真的不喜欢这个想法。

我想知道如何让 Windows 要求它回来......

windows sql-server memory
  • 5 5 个回答
  • 72212 Views

5 个回答

  • Voted
  1. Best Answer
    Mitch Wheat
    2010-02-01T21:31:36+08:002010-02-01T21:31:36+08:00

    我相信你唯一的选择是重新启动 SQL 服务,或者运行一个消耗大量内存的应用程序来强制 SQL 释放它。

    我喜欢@Nick Kavadias 的建议:监控内存:页面错误/秒性能计数器,以表明 SQL 并未对操作系统的内存施加压力。

    • 12
  2. mrdenny
    2010-02-01T23:48:12+08:002010-02-01T23:48:12+08:00

    向他们展示它会这样做的一种方法是让 SQL Server 吞噬所有内存。然后通过网络复制一个大文件(大的 SQL 备份文件非常适合这个)。这将导致系统缓存被填满,并且 Windows 将开始向 SQL 请求其内存。SQL 将开始将内存返回给操作系统,直到达到您的最小内存设置。

    (很抱歉没有通过 Twitter 得到整个问题,显然需要超过 140 个字符。)

    • 5
  3. Remus Rusanu
    2010-02-02T00:22:24+08:002010-02-02T00:22:24+08:00

    您提到“多维数据集”,因此不清楚您是在谈论 AS 引擎还是关系引擎。关系引擎可以按需释放内存:

    DBCC FREESYSTEMCACHE('<cache name>');
    

    其中“缓存名称”取自sys.dm_os_memory_clerks。DBCC FREESYSTEMCACHE的规范只提到了调控器池,但实际上可以驱逐更多的缓存。

    但是如果所有内存都被缓冲池使用,那么驱逐整个缓冲池将导致巨大的性能下降和巨大的 IO 负载。最好让 SQL 自己处理。

    • 2
  4. Jason Cumberland
    2010-02-03T09:53:58+08:002010-02-03T09:53:58+08:00

    使用 AS 和 DS 引擎,您可以对内存设置上限,使其保持在安全阈值以下;建议在具有大量 RAM 和/或多个 SQL 实例的 64 位计算机上这样做。至少对于数据库引擎,如果您将内存上限更改为低于当前使用量,它将减少动态内存量而无需重新启动服务,但不确定 SSAS。

    • 2
  5. Nick van Esch
    2013-02-09T10:44:11+08:002013-02-09T10:44:11+08:00

    我发现最简单的方法是转到服务器内存属性,输入一个较小的值,应用,等待几分钟并调整配置备份。

    我们还发现限制 sql 服务器内存使用实际上可以提高服务器的性能,因为它为 Windows 提供了更多的内存用于缓存等

    • 1

相关问题

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve