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
    • 最新
    • 标签
主页 / dba / 问题 / 115270
Accepted
boot4life
boot4life
Asked: 2015-09-17 08:58:22 +0800 CST2015-09-17 08:58:22 +0800 CST 2015-09-17 08:58:22 +0800 CST

让 SQL Server 向开发机器上的操作系统释放内存的好方法是什么?

  • 772

在我的开发盒上,我的 SQL Server 配置了最大内存量(8GB 或 16GB)。这是许多开发任务所必需的。

不过,有时我想找回我的记忆。我不想让 8GB 永久消耗。

什么是让 SQL Server 突然将其所有内存释放给操作系统的好方法?

DBCC DROPCLEANBUFFERS不这样做。它只是将干净的缓冲区标记为可用。

重新启动 SQL Server 是一个问题,因为由于此错误/功能,这会导致运行 1 分钟的数据库恢复:停止 SQL Server 服务会导致数据库无法完全关闭(请为该连接项投票;似乎是一个严重的错误) .

sql-server
  • 2 2 个回答
  • 52648 Views

2 个回答

  • Voted
  1. Best Answer
    Paul White
    2015-09-17T09:35:25+08:002015-09-17T09:35:25+08:00

    我经常增加和减少在我的笔记本电脑上运行的 SQL Server 2005-2016 实例的最大服务器内存配置选项(启用内存中的锁定页面)。从来没有给我带来任何问题,而且内存似乎总是很快被释放。当我发现我需要它们时,我还会停止、启动和重新启动实例(使用我保持打开状态的 SQL Server 配置管理器)。

    就检查点而言,如何配置取决于版本。具有持续时间目标的手动检查点自 2005 年以来一直可用(尽管不可否认它在以后的版本中更有效)。

    在关闭之前对每个数据库运行手动检查<duration>点将有助于分散 I/O 负载并减少启动时的恢复时间。当请求内存缩减时,托管检查点也将减少所需的 I/O,因为将有更少的脏页写入持久存储。在减少我注意到的最大内存设置之前删除干净的缓冲区没有特别的好处。

    不使用“内存中的锁定页面”可能会增加 SQL Server 释放内存的速率,但我依靠它来避免将 SQL Server 内存分页到磁盘。如果你不需要它来达到这个目的,你可以选择不使用它。

    • 17
  2. Shanky
    2015-09-17T21:32:27+08:002015-09-17T21:32:27+08:00

    不过,有时我想找回我的记忆。我不想让 8GB 永久消耗。

    什么是让 SQL Server 突然将其所有内存释放给操作系统的好方法?

    DBCC DROPCLEANBUFFERS 不这样做。它只是将干净的缓冲区标记为可用。

    既然你说你想释放DEV 机器上的内存,所以你可以使用下面的查询

    DBCC FREESYSTEMCACHE ('ALL') 
    DBCC FREESESSIONCACHE
    DBCC FREEPROCCACHE
    

    但请注意上面的命令won't cause SQL Server process to release memory committed it would just clear caches。这就是你正在经历的。

    运行上述查询后,您可以将 SQL Server 最大服务器内存更改为较低的值(在您的情况下可能为 4-5G),这将强制 SQL Server 进程释放内存,从而再次降低内存消耗我建议这样做,因为图中的机器是开发机器。更改最大服务器内存不需要重新启动。另一件事是重新启动 SQL Server 服务,这肯定会清除缓存,并且 SQL Server 进程持有的内存将被释放。但是在您重新启动 SQL Server 后,它可能会在一段时间后收回所有内存。

    • 7

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

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

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve