Measure the I/O load on database files and file group using fn_virtualfilestats

T SQL Date format convert function
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.