Запись в базу данных не равняется 1 к 1 с дисковым вводом-выводом.Обновления базы данных только грязные страницы в памяти, которые позже копируются на диск ленивым писателем или на контрольной точке.Единственное, что записывается на диск - это операция записи в журнал записи, для которой существует отдельный счетчик для каждой базы данных: Журнал байтов сброшен / сек .Обратите внимание, что tempdb
предъявляет особые требования к ведению журнала, так как он никогда не восстанавливается, поэтому ему требуется только отменить информацию.Всякий раз, когда грязные страницы действительно сбрасываются, будь то на контрольной точке или ленивым автором, для этого тоже есть определенные счетчики: страниц контрольной точки / сек и Lazy write /сек .Они не относятся к базе данных, поскольку сами эти действия не относятся к базе данных.Наконец, есть виртуальные файлы статистики DMV: sys.dm_io_virtual_file_stats
, которые предлагают совокупное количество операций ввода-вывода и количество байтов для каждого отдельного файла каждой отдельной базы данных, включая базу данных tempdb.
Вы упоминаете, что хотите измерить конкретное влияние временных таблиц и табличных переменных, но вы не сможете отделить их от остальных действий tempdb (сортировка катушек, рабочих таблиц и т. Д.).Я рекомендую вам перейти на Работа с tempdb в SQL Server 2005 , поскольку она все еще применяется к SQL 2008.