Pregunta

En Quizás normalizar no sea normal Jeff Atwood dice: "Estás midiendo automáticamente todas las consultas que fluyen a través de tu software, ¿verdad?" No lo soy, pero me gustaría.

Algunas características de la aplicación en cuestión:

¿Fue útil?

Solución

Además de la mención de Brad sobre SQL Profiler, si desea hacer esto en código, entonces todas las llamadas a su base de datos deben canalizarse a través de una biblioteca común.Insertas el código de tiempo allí y listo, sabes cuánto tiempo lleva cada consulta en tu sistema.

Un único punto de entrada a la base de datos es una característica bastante estándar de cualquier ORM o capa de base de datos, ¡o al menos lo ha sido en cualquier proyecto en el que haya trabajado hasta ahora!

Otros consejos

Perfilador SQL es la herramienta que utilizo para monitorear el tráfico que fluye hacia mi servidor SQL.Le permite recopilar datos detallados sobre su SQL Server.SQL Profiler se ha distribuido con SQL Server desde al menos SQL Server 2000 (pero probablemente también antes).

Muy recomendable.

Eche un vistazo a este capítulo que Jeff Atwood y yo escribimos sobre optimizaciones de rendimiento para sitios web.Cubrimos muchas cosas, pero hay muchas cosas sobre el seguimiento y la optimización de bases de datos:Acelere su sitio:8 consejos de rendimiento de ASP.NET

El Dropthings El proyecto en CodePlex tiene una clase para cronometrar bloques de código.La clase se llama TimedLog.Implementa IDisposable.Envuelve el bloque de código que desea cronometrar en una declaración de uso.

Si usa Rails, registra automáticamente todas las consultas SQL y el tiempo que tardaron en ejecutarse en su archivo de registro de desarrollo.

Esto me parece muy útil porque si ve uno que está tardando un poco, el único paso es copiarlo y pegarlo directamente desde la pantalla/archivo de registro, y poner 'explicar' delante de él en MySQL.

No tienes que buscar en tu código y reconstruir lo que está sucediendo.

No hace falta decir que esto no sucede en producción, ya que te dejaría sin espacio en disco en aproximadamente una hora.

Si define una fábrica que crea SqlCommands por usted y siempre la llama cuando necesita un nuevo comando, puede devolver un Proxy real a un SqlCommand.

Este proxy puede luego medir cuánto tiempo dura ExecuteReader/ExecuteScalar, etc.Utilice un cronómetro y regístrelo en algún lugar.La ventaja de utilizar este tipo de método sobre Sql Server Profiler es que puede obtener seguimientos de pila completos para cada parte de SQL ejecutada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top