Tengo una aplicación escrita en Ruby usando Rails 2.3. Usamos ActiveRecord.¿Cómo determinar qué código de Ruby-on-Rails generó SQL?
Ocasionalmente, ActiveRecord genera algunos SQL bastante horriblemente ineficientes. Podemos determinar qué SQL es problemático utilizando registros de consulta lenta y usando new relic. Sin embargo, puede ser realmente difícil determinar la línea de código en nuestro software que generó el SQL problemático. En general, se trata de una consulta creada mediante asociaciones y named_scopes.
Lo que realmente me gustaría es una forma de etiquetar el SQL en nuestros archivos de registro con el nombre de archivo y la línea nuestro código que lo generó (no la línea de ActiveRecord que ejecutó la consulta).
La información debe estar disponible a través de la matriz de llamadas. No quiero volcar toda la matriz, solo quiero que el nombre de archivo y la línea de nuestro código sean los más directamente responsables. ¿Hay una gema que ya hace esto? Si no, ¿alguna sugerencia?
Un compañero de trabajo sugirió que coloquemos el nombre de archivo y el número de línea (una vez que determinamos QUÉ son) en el SQL mismo como un comentario, en lugar de simplemente ponerlo en el archivo de registro de producción normal. De esta forma, el registro lento de consultas también tendría esta información. – ChrisInEdmonton