2009-10-21 9 views
1

Dans l'application Web que je développe actuellement, j'ai plusieurs requêtes de base de données en cours. Je voudrais savoir quelles parties du code produisent ces requêtes afin que je puisse refactoriser le code pour les réduire. Y a-t-il un moyen facile de faire ceci?Suivi des requêtes SQL créées par Ruby-on-Rails

En règle générale, les requêtes de base de données sont comme:

SELECT count(*) AS count_all FROM 'stores' WHERE ('stores'.'distributor_id' = 1)

Merci beaucoup pour vos suggestions!

Gav

+0

qui SGBDR ciblez-vous? –

+0

J'utilise MySQL comme SGBD. Je ne pense pas que les optimisations sont requises (encore) car le temps passé sur ces requêtes est généralement de 0.2ms (venant du cache, je suppose?). Je pense que je demande à Rails de faire quelque chose à plusieurs reprises, ce qui est inutile. – Gav

Répondre

3

Je pense que vous êtes à la recherche QueryTrace.

+0

Merci Andy, c'est génial! – Gav

1

Pour afficher le SQL d'une requête sur Ruby on Rails console procédez comme suit:

if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER') 
    require 'logger' 
    RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) 
end 


path_to_project$ sc 
Loading development environment (Rails 2.3.7) 
>> User.first 
    User Load (0.8ms) SELECT * FROM users LIMIT 1 
Questions connexes