Tomaría un rastro de los datos de producción usando SQL Profiler y reuniría el código / lotes que tienen las mayores lecturas y escrituras. Filtre la traza para obtener solo procedimientos y lotes con un alto nivel de lecturas / escrituras. Elija una muestra que se adapte a su ojo: digamos más de 1 millón de lecturas o escrituras.
Tomaría una muestra de esas llamadas a una máquina de desarrollo / prueba y las ejecutaría en Management Studio con la opción 'Incluir estadísticas del cliente' habilitada (en el menú Consulta - Incluir estadísticas del cliente). Luego tendrá una ventana separada con información de estadísticas del cliente: Bytes enviados desde el cliente, Bytes recibidos del servidor.
¡NO PERMITA EL RASTREO EN UNA DB DE PRODUCCIÓN SIN FILTRAR LOS DATOS! Filtre lo más posible (por db, nombre de host, lo que crea) y solo entonces comience el rastreo. No olvide cerrar el generador de perfiles después de :-).
PD: recordé otra buena opción: a lo largo de la traza durante un período, también debe guardar los datos usando Perfmon (elija solo parámetros IO). Profiler tiene una buena característica de importar juntos un archivo de rastreo y un archivo de datos de perfmon. Y puedes ver allí cuando tienes los picos de IO más grandes.
PS2: Estoy de acuerdo en que la opción de Gaius es más elegante. ¡Pero dejo mi voluminosa respuesta para la posteridad! :-)