--可以通过下面的查询了解哪个文件经常要做读(num_of_reads/num_of_bytes_read),经常要做写
--(num_of_writes/num_of_bytes_written),经常读写要等待(io_stall_write_ms/io_stall_read_ms/io_stall)
SELECT
db.name AS databasename,
f.fileid AS fileid,
f.filename AS FILENAME,
i.num_of_reads AS numofread,
i.num_of_bytes_read AS numofbyteread,
i.io_stall_read_ms AS ioinstallread,
i.num_of_writes AS numofwrite,
i.num_of_bytes_written AS numofbytewrite,
i.io_stall_write_ms AS iostallwrite,
i.io_stall AS iostall,
i.size_on_disk_bytes AS sizeondiskbyte
from sys.databases db INNER JOIN
sys.sysaltfiles f ON db.database_id=f.dbid
INNER JOIN sys.dm_io_virtual_file_stats(NULL,null) i
ON i.database_id=f.dbid AND i.file_id=f.fileid
----------------------------------------------------------------------------------------------------
SELECT
db.name AS databasename,
f.fileid AS fileid,
f.filename AS FILENAME,
i.num_of_reads AS numofread,
i.num_of_bytes_read AS numofbyteread,
i.io_stall_read_ms AS ioinstallread,
i.num_of_writes AS numofwrite,
i.num_of_bytes_written AS numofbytewrite,
i.io_stall_write_ms AS iostallwrite,
i.io_stall AS iostall,
i.size_on_disk_bytes AS sizeondiskbyte
from sys.databases db INNER JOIN
sys.sysaltfiles f ON db.database_id=f.dbid
INNER JOIN sys.dm_io_virtual_file_stats(DB_ID('gposdb'),null) i
ON i.database_id=f.dbid AND i.file_id=f.fileid
--动态管理视图sys.dm_io_pending_io_requests
--当前SQL中每个处于挂起状态的I/O请求
SELECT
database_id AS dbid,
file_id AS fileid,
io_stall AS iostall,
io_pending_ms_ticks AS iopendingmstick,
scheduler_address AS scheduleraddress
from sys.dm_io_virtual_file_stats(NULL,null) as t1,
sys.dm_io_pending_io_requests AS t2
WHERE t1.file_handle=t2.io_handle
T-Sql Check IO Problem
最新推荐文章于 2025-02-10 22:15:00 发布