我们一直在针对SQL Server数据库运行一些性能查询。
其中一个是返回一些非常令人关注的结果:
WITH Aggregate_IO_Statistics
AS
(
SELECT
DB_NAME(database_id) AS [Database Name],
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
)
SELECT
ROW_NUMBER() OVER(ORDER BY io_in_mb DESC) AS [I/O Rank],
[Database Name],
io_in_mb AS [Total I/O (MB)],
CAST(io_in_mb/ SUM(io_in_mb) OVER() * 100.0 AS DECIMAL(5,2)) AS [I/O Percent]
FROM Aggregate_IO_Statistics
ORDER BY [I/O Rank]
;
我们得到了什么:
I/O Rank Database Name Total I/O (MB) I/O Percent
1 tempdb 94288973.00 88.84
我们的I / O几乎有90%都是在tempdb数据库中完成的。排名第二,仅为2.43%。
我们对可能导致tempdb的所有I / O的原因感到茫然。
有没有人有办法让我们追踪tempdb中发生的事情?