2009-07-29 3 views
5

Esiste uno strumento che ispezionerà asp.net o sql server e segnala tutte le query eseguite sul database? Il motivo per cui lo chiedo è che sto usando Linq per un progetto e voglio ricontrollare ciò che effettivamente sta facendo per ogni pagina.C'è qualche strumento per vedere le query eseguite contro il database?

Idealmente mi piacerebbe visualizzare una pagina in un browser e avere un report di tutte le query che sono state eseguite per creare quella pagina.

So che posso visualizzare l'SQL che viene eseguito per singole query utilizzando debug/breakpoints e so di LinqPad, ma temo che Linq stia effettuando molte più query da solo per ottenere dati correlati che potrei non essere direttamente a conoscenza di C'è qualcosa (strumento/programma/rapporto/etc) come quello che ho descritto? Grazie!

MODIFICA: C'è uno strumento GRATUITO che può farlo? Sto usando SQL Server 2008 Express e purtroppo non ho SQL Profiler.

risposta

14

Assolutamente, esiste uno strumento SQL denominato SQL Profiler. Richiede autorizzazioni di database elevate per eseguire profiler.

Esiste un tutorial decente su come eseguire Profiler su TechRepublic.

Un'altra opzione è la NHibernate Profiler. So che non è così "libero" come SQL Profiler, non l'ho mai usato, ma le schermate per lui sembrano piuttosto interessanti.

3

Profiler è lo strumento migliore di tutti per questo, ma può essere costoso nelle mani inesperte.

Potete anche provare a fare "sp_who exec" e poi un "INPUTBUFFER dbcc (111)" - basta mettere l'ID di processo al posto di 111.

1

Dal momento che si utilizza SQL Server Express, come su questo strumento?

Profiler for Microsoft SQL Server 2005/2008 Express Edition

famiglia Microsoft SQL Server include edizione gratuita Express, che è completamente funzionale, ma ha alcune limitazioni deludenti che impedisce di utilizzarlo in fase di sviluppo processo. Uno di questi è l'assenza degli strumenti di profilazione , il profiler SQL standard non è incluso. Tuttavia, ora hai la possibilità di utilizzare Express Edition per sintonizzare il tuo sistema. SQL Server Express Edition Profiler fornisce la maggior parte della funzionalità di profiler standard , come scegliere eventi per profilo, impostazione di filtri, ecc. Ora ci sono senza strumenti analogici gratuiti.

Download Here

0

Per il LINQ to SQL query appositamente, è possibile anche utilizzare la proprietà DataContext.Log per emettere le query a un TextWriter, in modo da poter fare le cose come scrittura finestra di output al debugger o (come nel mio uso) a log4net.

Questi link possono aiutare:

non coprirà la roba non generato da L2S, quindi questo non può essere la fine tutta la soluzione per voi .. ma l'ho trovato utile.

1

Un modo rapido e sporco per accedere LINQ to query SQL in ASP.NET è questo (assumendo una Northwind.Dbml):

NorthwindDataContext context = new NorthwindDataContext(); 
context.Log = Response.Output; 

Questo scriverà tutte le query al flusso di risposta. Nasty, ma maneggevole per una gratificazione istantanea senza bisogno di debugger o profiler ecc.

0

Questo è gratuito solo per i primi 45 giorni, ma offre profilazione/registrazione in fase di esecuzione con una serie di opzioni di filtro, piano di esecuzione query SQL Server registrazione ecc. Creato appositamente per la profilatura di app L2S:

http://www.huagati.com/L2SProfiler