如何清除 SQL 缓存

Posted

技术标签:

【中文标题】如何清除 SQL 缓存【英文标题】:How to Clear SQL Cache 【发布时间】:2021-06-02 09:06:06 【问题描述】:

我最近继承了网络和服务器环境。我在一台服务器上有 SQL Server 18,目前报告的创建速度非常慢,我去了服务器实例并注意到内存已最大化,我的逻辑是告诉我清除 SQL 缓存,但我不是确定下一步要去哪里(我不是 SQL 专家)详情如下,

SQL Server 管理工作室 15.0.18384.0 SQL Server 管理对象 (SMO) 16.100.46367.54 Microsoft 分析服务客户端工具 15.0.19535.0 Microsoft 数据访问组件 (MDAC) 10.0.17763.1 微软 MSXML 3.0 6.0 微软 .NET 框架 4.0.30319.42000 操作系统 10.0.17763

下面的内存信息链接

【问题讨论】:

您的 SSMS 版本无关紧要 - 这是您发布的版本信息。您究竟是如何确定内存“已被“最大化”的,以及您使用什么“逻辑”来确定需要清除某些“缓存”。 清除 SQL Server 的缓冲池或计划缓存通常没有意义。引擎自动管理此内存;清除它只是意味着下一个需要大量内存的大查询将再次要求它。如果内存是个问题,那么搞乱缓冲池不是解决方案。请注意,SQL Server 与某些引擎不同,它 缓存查询结果:仅缓存原本会从磁盘读取的数据。因此,清除缓冲池通常只会导致暂时的减速,并且不会减少内存使用或提高性能。 【参考方案1】:

幸运的是,SQL Server 为我们提供了未记录的存储过程来完成这项工作。

要清除缓存,请运行以下命令集:

DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS

【讨论】:

太棒了!我需要在哪里运行它? (抱歉无知...) 您需要在 SQL Server Management Studio 查询编辑器中运行它并选择所需的数据库 为我的否决票提供上下文,问题无异于“我如何看穿我的手腕?”你的答案是“第 1 步 - 拿起刀。第 2 步 - ...”。

以上是关于如何清除 SQL 缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何清除Oracle中的所有缓存项

sqlserver 中一些常看的指标和清除缓存的方法

SQL性能优化前期准备-清除缓存开启IO统计

sql 在SQL中缓存清除

sql 通过SQL清除Drupal缓存

SQL Server 缓存清除与内存释放