DBCC DROPCLEANBUFFERS是MSSql提供的清除緩存數據,這邊的緩存數據一定要加個前提,一定是“乾凈”的緩存數據。何為乾凈的緩存數據?就是數據頁從硬碟讀取到記憶體或者數據寫入到硬碟後在也沒有被修改過。做一個簡單的驗證。步驟一:首先從硬碟讀取一些數據,然後運行update語句,然後運行如...
DBCC DROPCLEANBUFFERS是MSSql提供的清除緩存數據,這邊的緩存數據一定要加個前提,一定是“乾凈”的緩存數據。
何為乾凈的緩存數據?
就是數據頁從硬碟讀取到記憶體或者數據寫入到硬碟後在也沒有被修改過。
做一個簡單的驗證。
步驟一:
首先從硬碟讀取一些數據,然後運行update語句,然後運行如下腳本
select * from sys.dm_os_buffer_descriptors
where DB_NAME(database_id) = 'mymis'
得到結果1303行的數據
select * from sys.dm_os_buffer_descriptors
where DB_NAME(database_id) = 'mymis' and is_modified = '1'
得到結果是有1197行數據(被修改過的)。
步驟二:
運行DBCC DROPCLEANBUFFERS(僅在本機使用)
後再運行上面的2個腳本得到的結果都是1197行數據,說明資料庫已經把乾凈的頁清除了,臟頁保留在記憶體中!