国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

DBCC DROPCLEANBUFFERS失效了?

2024-07-21 02:47:07
字體:
來源:轉載
供稿:網友
DBCC DROPCLEANBUFFERS失效了?

原文出處:http://www.sqlskills.com/blogs/paul/when-dbcc-dropcleanbuffers-doesnt-work/

DBCC DROPCLEANBUFFERS是用來清除內存中的數據緩存,一般我們在做性能調優時為了方便看到一條語句的執行時間和物理IO消耗,都會在語句執行前執行一遍DBCC DROP CLEANBUFFERS。

但,這招并不是時時很靈。

有人或許就碰到這種現象,即使執行了DBCC DROPCLEANBUFFERS,但在SSMS的輸出信息里面還是看不到物理讀,這條語句還是從內存中讀取的數據(邏輯讀)。

你會很詫異,“不是已經將內存中的緩沖清空了嗎,怎么沒有物理讀呢?出現這種現象是不是DBCC DROPCLEANBUFFERS失效了呢?”

不是。DROP CLEANBUFFERS確實是可以用來清除內存中的數據緩存,但只能清除掉clean狀態的緩存頁面,相對的,如果這些頁面是臟頁,也就是內存中已被修改且還未同步到磁盤的數據頁面,那么它是無法從緩存中清除的,這是為了性能的考慮。

所以當你遇到DROP CLEANBUFFERS“失效”時,嘗試手動同步下內存和磁盤中的數據頁面,執行:

checkpoint

你也可以通過如下語句查看當前內存中clean頁面和臟頁的數量和大小:

SELECT *,[DirtyPageCount] * 8 / 1024 AS [DirtyPageMB],[CleanPageCount] * 8 / 1024 AS [CleanPageMB]FROM(SELECT(CASE WHEN ([database_id] = 32767)THEN N'Resource Database'ELSE DB_NAME ([database_id]) END) AS [DatabaseName],SUM (CASE WHEN ([is_modified] = 1)THEN 1 ELSE 0 END) AS [DirtyPageCount],SUM (CASE WHEN ([is_modified] = 1)THEN 0 ELSE 1 END) AS [CleanPageCount]FROM sys.dm_os_buffer_descriptorsGROUP BY [database_id]) AS [buffers]ORDER BY [DatabaseName]GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 繁峙县| 常德市| 阜平县| 惠安县| 博湖县| 上饶县| 阳西县| 嘉峪关市| 湖口县| 阳山县| 平潭县| 肇东市| 溧阳市| 株洲市| 青海省| 奉新县| 个旧市| 平罗县| 平遥县| 顺义区| 凤冈县| 比如县| 巴楚县| 金门县| 安西县| 荥阳市| 黄大仙区| 竹山县| 高碑店市| 南江县| 汕头市| 黄大仙区| 华坪县| 宁夏| 枣庄市| 濮阳市| 泰和县| 合阳县| 扬中市| 屯门区| 德令哈市|