Я бы проследил производственные данные с использованием SQL Profiler и собрал бы код / пакеты, которые имеют наибольшее чтение и запись. Отфильтруйте трассировку, чтобы получить только те процедуры и пакеты с высоким уровнем чтения / записи. Выберите пример, который подходит вашему глазу: скажем, более 1 миллиона операций чтения или записи.
Я бы взял образец этих вызовов на машину разработчика / тестирования и запустил их в Management Studio с включенной опцией «Включить статистику клиента» (в меню «Запрос» - «Включить статистику клиента»). Затем у вас будет отдельное окно со статистикой клиента: байты отправлены с клиента, байты получены с сервера.
НЕ ВКЛЮЧАЙТЕ СЛЕДУЮЩУЮ ТРАССИРОВКУ БД ПРОДУКЦИИ БЕЗ ФИЛЬТРАЦИИ ДАННЫХ !!! Отфильтруйте максимально возможное (по базе данных, имени хоста, во что бы то ни стало) и только затем начните трассировку. Не забудьте закрыть Профилировщик после :-).
PS: я вспомнил еще один приятный вариант: вдоль трассировки в течение некоторого периода вы также должны сохранять данные, используя Perfmon (выбирайте только параметры ввода-вывода). Профилировщик имеет хорошую функцию импорта вместе файла трассировки и файла данных perfmon. И вы можете увидеть там, когда у вас есть самые большие пики IO.
PS2: я согласен, что вариант Гая более элегантный. Но я оставляю свой громоздкий ответ для потомков! :-)