我的一个朋友今天告诉我,我可以简单地分离然后重新附加数据库,而不是弹跳 SQL Server,此操作将从缓存中清除给定数据库的页面和计划。我不同意并在下面提供我的证据。如果您不同意我的观点或有更好的反驳,请务必提供。
我在这个版本的 SQL Server 上使用 AdventureWorks2012:
选择@@版本; Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Windows NT 6.1(内部版本 7601:Service Pack 1)上的开发人员版(64 位)
加载数据库后,我运行以下查询:
首先,运行在这里找到的 Jonathan K 的 AW 增肥脚本:
--------------------------- -- 第 1 步:Bpool 的东西? --------------------------- 使用 [AdventureWorks2012]; 走 选择 OBJECT_NAME(p.object_id) AS [ObjectName] , p.object_id , p.index_id , COUNT(*) / 128 AS [缓冲区大小(MB)] , COUNT(*) AS [buffer_count] 从 sys.allocation_units AS INNER JOIN sys.dm_os_buffer_descriptors AS b ON a.allocation_unit_id = b.allocation_unit_id INNER JOIN sys.partitions AS p ON a.container_id = …