方法
- E
- F
- I
- S
常量
| EXPLAINED_SQLS | = | /\A\s*(\/\*.*\*\/)?\s*(with|select|update|delete|insert)\b/i |
| IGNORED_PAYLOADS | = | %w(SCHEMA EXPLAIN) |
SCHEMA 查询无法被 EXPLAIN,而且我们也不想对自己的 EXPLAIN 运行 EXPLAIN,无论它有多么循环往复的美妙。 另一方面,我们希望监控真实数据库查询的性能,而不是查询缓存访问的性能。 |
||
| MUTEX | = | Mutex.new |
类公共方法
ensure_subscribed() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/explain_registry.rb, line 16 def ensure_subscribed return if @subscribed MUTEX.synchronize do return if @subscribed ActiveSupport::Notifications.subscribe("sql.active_record", new) @subscribed = true end end
实例公共方法
finish(name, id, payload) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/explain_registry.rb, line 31 def finish(name, id, payload) if ExplainRegistry.collect? && !ignore_payload?(payload) ExplainRegistry.queries << payload.values_at(:sql, :binds) end end
ignore_payload?(payload) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/explain_registry.rb, line 48 def ignore_payload?(payload) payload[:exception] || payload[:cached] || IGNORED_PAYLOADS.include?(payload[:name]) || !payload[:sql].match?(EXPLAINED_SQLS) end
silenced?(_name) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/explain_registry.rb, line 37 def silenced?(_name) !ExplainRegistry.collect? end
start(name, id, payload) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/explain_registry.rb, line 27 def start(name, id, payload) # unused end