Risposte:
Puoi trovarlo dai 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 differenza della traccia, questo dovrebbe essere perfettamente sicuro per essere eseguito su un server di produzione.
Vorrei tracciare i dati di produzione usando SQL Profiler e raccoglierei il codice / i lotti che hanno maggiori letture e scritture. Filtrare la traccia per ottenere solo procedure e batch ad alto contenuto di letture / scritture. Scegli un campione adatto al tuo occhio: diciamo più di 1 milione di letture o scritture.
Vorrei prendere un campione di quelle chiamate a una macchina di sviluppo / test ed eseguirle in Management Studio con l'opzione 'Includi statistiche client' abilitata (nel menu Query - Includi statistiche client). Quindi avrai una finestra separata con le informazioni sulle statistiche del client: byte inviati dal client, byte ricevuti dal server.
NON ABILITARE IL TRACCIAMENTO SU UN DB DI PRODUZIONE SENZA FILTRARE I DATI !!! Filtra il più possibile (per db, nome host, qualunque cosa tu creda) e solo allora avvia la traccia. Non dimenticare di chiudere il Profiler dopo :-).
PS: ho ricordato un'altra bella opzione: lungo la traccia per un periodo, dovresti anche salvare i dati usando Perfmon (scegli solo parametri IO). Profiler ha una bella caratteristica di importare insieme un file di traccia e un file di dati perfmon. E puoi vedere lì quando hai i più grandi picchi di IO.
PS2: concordo sul fatto che l'opzione di Gaius sia più elegante. Ma lascio la mia ingombrante risposta ai posteri! :-)
Se non l'hai ancora visto, potresti dare un'occhiata a sp_WhoIsActive di Adam Machanic. Di recente ha pubblicato una serie di post sul blog che spiegano diverse funzionalità integrate in sp_WhoIsActive, una delle quali è @delta_interval.
Questo non solo ti mostrerà ciò che occupa la maggior parte della CPU o I / O in generale, ma può anche mostrarti ciò che sta occupando la maggior parte della CPU o I / O in questo momento.
Dai un'occhiata alle seguenti serie di blog per una spiegazione completa di questa funzione:
http://whoisactive.com/docs/01_background/
Il seguente post sul blog spiega come ordinare l'output di sp_WhoIsActive e selezionare quali colonne visualizzare:
http://whoisactive.com/docs/24_output/
Questo è uno dei tanti post disponibili sul seguente link di aggiornamenti che ha configurato.
La versione 11.0 è disponibile al momento della risposta, quindi se stai usando una versione precedente potrebbe essere il momento di aggiornare: D