DBCC DROPCLEANBUFFERS(Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics

移除緩衝集區中的所有清除緩衝區,以及移除資料行存放區物件集區中的資料行存放區物件。

Transact-SQL 語法慣例

Syntax

Azure Synapse Analytics 中 SQL Server、Azure SQL Database 和無伺服器 SQL 集區的語法:

DBCC DROPCLEANBUFFERS [ WITH NO_INFOMSGS ]

Azure Synapse Analytics 的語法:

DBCC DROPCLEANBUFFERS ( COMPUTE | ALL ) [ WITH NO_INFOMSGS ]

引數

使用 NO_INFOMSGS

隱藏所有參考訊息。 資訊訊息在 Azure Synapse Analytics 上總是會被抑制。

COMPUTE

從每個計算節點中,清除記憶體中的資料快取。

ALL

從每個計算節點和控制節點中,清除記憶體中的資料快取。 如果您未指定值,則此設定為預設。

備註

在不將伺服器關閉再重新啟動的情況下,可以使用 DBCC DROPCLEANBUFFERS,以極非經常性存取緩衝區快取來測試查詢。 若要從緩衝集區中卸除清除緩衝區,以及從資料行存放區物件集區中卸除資料行存放區物件,請先使用 CHECKPOINT 來產生冷緩衝區快取。 CHECKPOINT 會強制將所有目前資料庫的中途分頁寫入磁碟中,然後清除緩衝區。 在你對資料庫使用 CHECKPOINT 後,就能發出 DBCC DROPCLEANBUFFERS 命令,將所有緩衝區從緩衝集區中移除。

在 Azure SQL Database 中,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 Server

  • 需要伺服器上的 sysadmin 權限

適用於:SQL Server 2022 和更新版本

  • 需要伺服器上的 ALTER SERVER STATE 權限

適用於:Azure SQL Database

  • 需要伺服器角色 ##MS_ServerStateManager## 中的成員資格

適用於:Azure Synapse Analytics

  • 需要 db_owner 固定伺服器角色中的成員資格