ARProxy でクエリの実行箇所を SQL コメントとして仕込むやつ
3003 ワード
こんなかんじでイケるというメモ
config/initializers/arproxy.rb
RAILS_ROOT = Rails.root.to_s
class QueryTracer < Arproxy::Base
def execute(sql, name=nil)
line = caller.find {|line| line.start_with?(RAILS_ROOT) and not line.start_with?(__FILE__) }
sql << " /* #{line} */"
super(sql, name)
end
end
Arproxy.configure do |config|
config.adapter = "mysql2" # A DB Apdapter name which is used in your database.yml
config.use QueryTracer
end
Arproxy.enable!
ログにこんな感じで出る
[DEBUG] SELECT `filter_sets`.id FROM `filter_sets` WHERE `filter_sets`.`project_id` = 525 /* /home/sonots/myapp/app/models/report.rb:79:in `remove_unavailable_filter_set'
遅そうなので development でしか有効化してない。
EDIT: slow なクエリにだけ仕込むようにすれば特に問題にならなそう
Author And Source
この問題について(ARProxy でクエリの実行箇所を SQL コメントとして仕込むやつ), 我々は、より多くの情報をここで見つけました https://qiita.com/sonots/items/af81e4103399dd418587著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .