Ho un'applicazione scritta in Ruby usando Rails 2.3. Usiamo ActiveRecord.Come determinare quale codice di Ruby-on-Rails ha generato qualche SQL?
Occasionalmente, ActiveRecord genera un SQL piuttosto orribilmente inefficiente. Siamo in grado di determinare quale SQL è problematico utilizzando i registri di query lente e utilizzando new relic. Tuttavia, può essere veramente difficile determinare la linea di codice nel nostro software che ha generato l'SQL problematico. Generalmente è una query creata usando associazioni e named_scopes.
Quello che mi piacerebbe davvero piace è un modo per etichettare l'SQL nei nostri file di log con il nome del file e la linea di nostro codice che lo ha generato (non la linea di ActiveRecord che ha eseguito la query).
Le informazioni devono essere disponibili tramite l'array del chiamante. Non voglio scaricare l'intero array, voglio solo il nome del file e la linea del nostro codice più direttamente responsabile. C'è un gioiello che lo fa già? Se no, qualche suggerimento?
Un collaboratore ha suggerito di inserire il nome file e il numero di riga (una volta determinati quali sono) nello stesso SQL come commento, piuttosto che inserirlo nel normale file di registro di produzione. In questo modo, il log delle query lente avrebbe anche queste informazioni. – ChrisInEdmonton