USE master
GO
DECLARE @dbid int, @dbname sysname, @fileid int
, @name sysname, @BytesRead int
, @BytesWritten int, @filename nvarchar(255)
CREATE TABLE ##IOfilestat
( [База данных] sysname
, [№ файла] int
, [Логическое имя] sysname
, [Прочитано (Мб)] int
, [Записано (Мб)] int
, [Путь к файлу] nvarchar(255)
)
DECLARE filestats CURSOR GLOBAL FAST_FORWARD READ_ONLY FOR
SELECT saf.dbid
, saf.fileid
, saf.name
, saf.filename
FROM sysaltfiles AS saf
WHERE saf.dbid NOT IN (1,3,4)
ORDER BY saf.name
OPEN GLOBAL filestats
WHILE 1 = 1
BEGIN
FETCH filestats INTO @dbid, @fileid, @name, @filename
IF @@fetch_status <> 0 BREAK
INSERT INTO ##IOfilestat
( [База данных]
, [№ файла]
, [Логическое имя]
, [Прочитано (Мб)]
, [Записано (Мб)]
, [Путь к файлу]
)
SELECT DB_NAME(@dbid)
, @fileid
, @name
, (SELECT BytesRead/1048576 FROM :: fn_virtualfilestats(@dbid, @fileid))
, (SELECT BytesWritten/1048576 FROM :: fn_virtualfilestats(@dbid, @fileid))
, @filename
END
CLOSE GLOBAL filestats
DEALLOCATE filestats
SELECT [База данных],[№ файла],[Логическое имя],[Прочитано (Мб)],[Записано (Мб)],[Путь к файлу]
FROM ##IOfilestat
ORDER BY [Прочитано (Мб)] + [Записано (Мб)] DESC
DROP TABLE ##IOfilestat
GO