Câu hỏi thú vị và (bây giờ tôi thấy rằng @ MarkStorey-Smith đã trả lời Tôi ngần ngại trả lời - vì vậy hãy chấp nhận anh ấy kể từ khi anh ấy trả lời trước) Tôi quyết định thực hiện một số kiểm tra. Tôi có một cơ sở dữ liệu được đặt tên analysistrên một trong những máy ảo cục bộ của tôi. Vì vậy, tôi đã chạy tập lệnh này (thêm thông tin về bộ đệm và cơ sở cho các truy vấn của tôi có thể được tìm thấy ở đây ):
SELECT database_id
FROM sys.databases
WHERE name = 'analysis';
GO
-- database_id = 7
DECLARE @total_buffer INT;
SELECT @total_buffer = cntr_value
FROM sys.dm_os_performance_counters
WHERE RTRIM([object_name]) LIKE '%Buffer Manager'
AND (counter_name = 'Total Pages' --this is 2008
OR counter_name = 'Database pages'); -- this is 2012
;WITH src AS (
SELECT
database_id, DB_Buffer_Pages = COUNT_BIG(*)
FROM sys.dm_os_buffer_descriptors
--WHERE database_id BETWEEN 5 AND 32766
GROUP BY database_id
)
SELECT
@@SERVERNAME AS InstanceName,
GETDATE() AS collection_date,
database_name = DB_NAME(mem.database_id),
db_buffer_pages,
cached_size_mb,
db_buffer_pct,
cpu_time,
cpu_percent_usage,
total_io_mb,
io_percent
FROM (
SELECT
database_id,
db_buffer_pages = DB_Buffer_Pages,
cached_size_mb = DB_Buffer_Pages / 128.0,
db_buffer_pct = CONVERT(DECIMAL(6,3),
DB_Buffer_Pages * 100.0 / @total_buffer)
FROM src
) mem
JOIN (
SELECT
database_id, cpu_time,
CAST(cpu_time * 1.0 / SUM(cpu_time) OVER() * 100.0 AS DECIMAL(5, 2)) AS cpu_percent_usage
FROM (
SELECT database_id, SUM(total_worker_time) AS cpu_time
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY (SELECT CONVERT(int, value) AS database_id
FROM sys.dm_exec_plan_attributes(qs.plan_handle)
WHERE attribute = N'dbid') AS F_DB
GROUP BY database_id) DB_CPU_Stats
) cpu
ON mem.database_id = cpu.database_id
JOIN (
SELECT database_id, io_in_mb AS [total_io_mb],
CAST(io_in_mb/ SUM(io_in_mb) OVER() * 100.0 AS DECIMAL(5,2)) AS [io_percent]
FROM (
SELECT database_id,
CAST(SUM(num_of_bytes_read + num_of_bytes_written)/1048576 AS DECIMAL(12, 2)) AS io_in_mb
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS [DM_IO_STATS]
GROUP BY database_id) Aggregate_IO_Statistics) [io]
ON mem.database_id = [io].database_id
where mem.database_id = 7
GO
-- 471
USE master
GO
BACKUP DATABASE analysis TO DISK=N'analysis.bak';
GO
BACKUP LOG analysis TO DISK=N'analysis.trn' WITH NORECOVERY;
GO
RESTORE DATABASE analysis FROM DISK=N'analysis.bak' WITH NORECOVERY;
GO
RESTORE DATABASE analysis FROM DISK=N'analysis.trn';
GO
DECLARE @total_buffer INT;
SELECT @total_buffer = cntr_value
FROM sys.dm_os_performance_counters
WHERE RTRIM([object_name]) LIKE '%Buffer Manager'
AND (counter_name = 'Total Pages' --this is 2008
OR counter_name = 'Database pages'); -- this is 2012
;WITH src AS (
SELECT
database_id, DB_Buffer_Pages = COUNT_BIG(*)
FROM sys.dm_os_buffer_descriptors
--WHERE database_id BETWEEN 5 AND 32766
GROUP BY database_id
)
SELECT
@@SERVERNAME AS InstanceName,
GETDATE() AS collection_date,
database_name = DB_NAME(mem.database_id),
db_buffer_pages,
cached_size_mb,
db_buffer_pct,
cpu_time,
cpu_percent_usage,
total_io_mb,
io_percent
FROM (
SELECT
database_id,
db_buffer_pages = DB_Buffer_Pages,
cached_size_mb = DB_Buffer_Pages / 128.0,
db_buffer_pct = CONVERT(DECIMAL(6,3),
DB_Buffer_Pages * 100.0 / @total_buffer)
FROM src
) mem
JOIN (
SELECT
database_id, cpu_time,
CAST(cpu_time * 1.0 / SUM(cpu_time) OVER() * 100.0 AS DECIMAL(5, 2)) AS cpu_percent_usage
FROM (
SELECT database_id, SUM(total_worker_time) AS cpu_time
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY (SELECT CONVERT(int, value) AS database_id
FROM sys.dm_exec_plan_attributes(qs.plan_handle)
WHERE attribute = N'dbid') AS F_DB
GROUP BY database_id) DB_CPU_Stats
) cpu
ON mem.database_id = cpu.database_id
JOIN (
SELECT database_id, io_in_mb AS [total_io_mb],
CAST(io_in_mb/ SUM(io_in_mb) OVER() * 100.0 AS DECIMAL(5,2)) AS [io_percent]
FROM (
SELECT database_id,
CAST(SUM(num_of_bytes_read + num_of_bytes_written)/1048576 AS DECIMAL(12, 2)) AS io_in_mb
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS [DM_IO_STATS]
GROUP BY database_id) Aggregate_IO_Statistics) [io]
ON mem.database_id = [io].database_id
where mem.database_id = 7
--242
471 Trang đệm trước khi khôi phục, 242 sau đó. Thật không may, tôi đã không tổng hợp các loại trang trong bộ đệm nhưng tôi dám chắc rằng các trang trong bộ đệm phải thực hiện với tôi khi chạy các truy vấn phân tích bộ đệm.
Đây là kết quả của truy vấn cho trước và sau khôi phục phân tích ... analysis.
TRƯỚC:
BÀI ĐĂNG:
