Measure the I/O load on database files and file group using fn_virtualfilestats
Here is the script which can give you SQL Server file IO Statistics for each file and file group. Using this data you can find out sql server read/write performance of your disks.
DECLARE @TotalIO BIGINT, @TotalBytes BIGINT, @TotalStall BIGINT SELECT @TotalIO = SUM(NumberReads + NumberWrites), @TotalBytes = SUM(BytesRead + BytesWritten), @TotalStall = SUM(IoStallMS) FROM ::FN_VIRTUALFILESTATS(NULL, NULL) SELECT [DbName] = DB_NAME([DbId]), (SELECT name FROM sys.master_files WHERE database_id = [DbId] and FILE_ID = [FileId]) filename, [%ReadWrites] = (100 * (NumberReads + NumberWrites) / @TotalIO), [%Bytes] = (100 * (BytesRead + BytesWritten) / @TotalBytes), [%Stall] = (100 * IoStallMS / @TotalStall), [NumberReads], [NumberWrites], [TotalIO] = CAST((NumberReads + NumberWrites) AS BIGINT), [MBsRead] = [BytesRead] / (1024*1024), [MBsWritten] = [BytesWritten] / (1024*1024), [TotalMBs] = (BytesRead + BytesWritten) / (1024*1024), [IoStallMS], IoStallReadMS, IoStallWriteMS, [AvgStallPerIO] = ([IoStallMS] / ([NumberReads] + [NumberWrites] + 1)), [AvgStallPerReadIO] = (IoStallReadMS / ([NumberReads] + 1)), [AvgStallPerWriteIO]= (IoStallWriteMS / ( [NumberWrites] + 1)), [AvgBytesPerRead] = ((BytesRead) / (NumberReads + 1)), [AvgBytesPerWrite] = ((BytesWritten) / (NumberWrites + 1)) FROM ::FN_VIRTUALFILESTATS(NULL, NULL) ORDER BY dbname
Leave a Reply
You must be logged in to post a comment.