Respuestas:
Puede encontrar esto en los DMV :
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
A diferencia del rastreo, esto debería ser perfectamente seguro para ejecutarse en un servidor de producción.
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! :-)
Si aún no lo ha mirado, puede consultar el sp_WhoIsActive de Adam Machanic. Recientemente hizo una serie de publicaciones en el blog que explican las diferentes características integradas en sp_WhoIsActive, una de las cuales es @delta_interval.
Esto no solo le mostrará qué ocupa la mayor cantidad de CPU o E / S en general, sino que también le mostrará qué está consumiendo la mayor cantidad de CPU o E / S en este momento.
Consulte la siguiente serie de blogs para obtener una explicación completa de esta característica:
http://whoisactive.com/docs/01_background/
La siguiente publicación de blog explica cómo ordenar la salida de sp_WhoIsActive y seleccionar qué columnas mostrar:
http://whoisactive.com/docs/24_output/
Esta es una de las muchas publicaciones disponibles en el siguiente enlace de actualizaciones que ha configurado.
La versión 11.0 está disponible en el momento de esta respuesta, por lo que si está utilizando una versión anterior, podría ser el momento de actualizar: D