Ответы:
Вы можете найти это в DMV s:
SELECT session_id, num_writes, st.text AS statement_text
FROM sys.dm_exec_connections AS ec
CROSS APPLY sys.dm_exec_sql_text(ec.most_recent_sql_handle) AS st
ORDER BY num_writes DESC
В отличие от трассировки, это должно быть совершенно безопасно для запуска на производственном сервере.
Я бы проследил производственные данные с использованием SQL Profiler и собрал бы код / пакеты, которые имеют наибольшее чтение и запись. Отфильтруйте трассировку, чтобы получить только те процедуры и пакеты с высоким уровнем чтения / записи. Выберите пример, который подходит вашему глазу: скажем, более 1 миллиона операций чтения или записи.
Я бы взял образец этих вызовов на машину разработчика / тестирования и запустил их в Management Studio с включенной опцией «Включить статистику клиента» (в меню «Запрос» - «Включить статистику клиента»). Затем у вас будет отдельное окно со статистикой клиента: байты отправлены с клиента, байты получены с сервера.
НЕ ВКЛЮЧАЙТЕ СЛЕДУЮЩУЮ ТРАССИРОВКУ БД ПРОДУКЦИИ БЕЗ ФИЛЬТРАЦИИ ДАННЫХ !!! Отфильтруйте максимально возможное (по базе данных, имени хоста, во что бы то ни стало) и только затем начните трассировку. Не забудьте закрыть Профилировщик после :-).
PS: я вспомнил еще один приятный вариант: вдоль трассировки в течение некоторого периода вы также должны сохранять данные, используя Perfmon (выбирайте только параметры ввода-вывода). Профилировщик имеет хорошую функцию импорта вместе файла трассировки и файла данных perfmon. И вы можете увидеть там, когда у вас есть самые большие пики IO.
PS2: я согласен, что вариант Гая более элегантный. Но я оставляю свой громоздкий ответ для потомков! :-)
Если вы еще не посмотрели его, возможно, вы захотите проверить sp_WhoIsActive Адама Мачаника. Недавно он сделал серию постов в блоге, объясняющих различные функции, встроенные в sp_WhoIsActive, одной из которых является @delta_interval.
Это не только покажет вам, что занимает больше всего ЦП или ввода-вывода в целом, но также может показать вам, что занимает сейчас больше всего ЦП или ввода-вывода.
Посмотрите следующую серию блогов для полного объяснения этой функции:
http://whoisactive.com/docs/01_background/
В следующем сообщении блога объясняется, как отсортировать выходные данные sp_WhoIsActive и выбрать столбцы для отображения:
http://whoisactive.com/docs/24_output/
Это одна из многих публикаций, доступных по следующей ссылке, которую он настроил.
Версия 11.0 доступна на момент этого ответа, поэтому, если вы используете более старую версию, возможно, пришло время обновить: D