SQL Server 2008: A * Счетчик ввода-вывода файла данных * для SQL Server - PullRequest
0 голосов
/ 29 марта 2011

Я делаю стресс-тест SQL Server 2008 и хочу знать, что такое поток данных в базу данных tempdb из-за использования временных таблиц и переменных.

Статистика также отображается в мониторе активности:

enter image description here

Можно ли как-то записать данные и затем проанализировать их? Я имею в виду 2 случая:

  1. Запишите счетчик SQL Server (я не знаю, как его называть)
  2. Записать как-нибудь данные из Activity Monitor

Ответы [ 3 ]

2 голосов
/ 30 марта 2011

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

Вы упоминаете, что хотите измерить конкретное влияние временных таблиц и табличных переменных, но вы не сможете отделить их от остальных действий tempdb (сортировка катушек, рабочих таблиц и т. Д.).Я рекомендую вам перейти на Работа с tempdb в SQL Server 2005 , поскольку она все еще применяется к SQL 2008.

0 голосов
/ 29 марта 2011

Я бы взял "снимки" с регулярным интервалом (используя следующие DMV), загруженные в таблицы, чтобы определить ваши внутренние использования tempDB.

sys.all_objects 
sys.dm_db_file_space_usage
sys.dm_db_task_space_usage

sys.dm_db_task_space_usage будет разбивать использование по SPID и т. Д.

0 голосов
/ 29 марта 2011

Если вы используете системный монитор (perfmon.exe) для мониторинга счетчиков SQL Server, вы можете настроить его для записи в файл .csv для анализа в Excel (например)

Рассматриваемый счетчик производительности имеет размер файла данных в SQLServer: Базы данных

...