DBCC DROPCLEANBUFFERS (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

从缓冲池删除所有清除缓冲区,并从列存储对象池中删除列存储对象。

Transact-SQL 语法约定

语法

SQL Server、Azure SQL 数据库和 Azure Synapse Analytics 中的无服务器 SQL 池的语法:

DBCC DROPCLEANBUFFERS [ WITH NO_INFOMSGS ]

Azure Synapse Analytics 和 Analytics Platform System (PDW) 的语法:

DBCC DROPCLEANBUFFERS ( COMPUTE | ALL ) [ WITH NO_INFOMSGS ]

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

WITH NO_INFOMSGS

取消显示所有信息性消息。 Azure Synapse Analytics 和 Analytics Platform System (PDW) 中始终禁止信息性消息。

COMPUTE

从每个“计算”节点清除内存中的数据缓存。

ALL

从每个“计算”节点和“管理”节点,清除内存中的数据缓存。 如果未指定值,系统将使用此默认设置。

备注

使用 DBCC DROPCLEANBUFFERS 测试包含冷缓冲区缓存的查询,而不用关闭和重启服务器。 若要从缓冲池删除清除缓冲区,并从列存储对象池删除列存储对象,请首先使用 CHECKPOINT 生成一个冷缓冲区缓存。 CHECKPOINT 可以强制将当前数据库的全部脏页写入磁盘,然后清除缓冲区。 检查数据库的检查点后,便可发出 DBCC DROPCLEANBUFFERS 命令来从缓冲池中删除所有缓冲区。

在 Azure SQL 数据库中,DBCC DROPCLEANBUFFERS 对托管当前数据库或弹性池的数据库引擎实例执行操作。 在用户数据库中执行 DBCC DROPCLEANBUFFERS 会删除该数据库的干净缓冲区。 如果数据库位于弹性池中,则它还会删除该弹性池中所有其他数据库的干净缓冲区。 在 master 数据库中执行命令不会影响同一逻辑服务器上的其他数据库。 使用 Basic、S0 或 S1 服务目标在数据库中执行此命令可能会在同一逻辑服务器上使用这些服务目标删除其他数据库中的干净缓冲区。

结果集

SQL Server 上的 DBCC DROPCLEANBUFFERS 返回:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

权限

适用范围:SQL ServerAnalytics Platform System (PDW)

  • 需要拥有服务器上的 sysadmin 权限

适用范围:SQL Server 2022 及更高版本

  • 需要对服务器的 ALTER SERVER STATE 权限

适用于:Azure SQL 数据库

  • 要求具有 ##MS_ServerStateManager## 服务器角色的成员身份

适用范围:Azure Synapse Analytics

  • 要求具有 db_owner 固定服务器角色的成员资格

请参阅