instance method explain

Ruby on Rails 8.1.2

Since v3.2.22.5

Available in: v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

explain(*options)

Runs EXPLAIN on the query or queries triggered by this relation and returns the result as a string. The string is formatted imitating the ones printed by the database shell.

User.all.explain
# EXPLAIN SELECT `users`.* FROM `users`
# ...

Note that this method actually runs the queries, since the results of some are needed by the next ones when eager loading is going on.

To run EXPLAIN on queries created by first, pluck and count, call these methods on explain:

User.all.explain.count
# EXPLAIN SELECT COUNT(*) FROM `users`
# ...

The column name can be passed if required:

User.all.explain.maximum(:id)
# EXPLAIN SELECT MAX(`users`.`id`) FROM `users`
# ...

Please see further details in the Active Record Query Interface guide.

Parameters

options rest
Source
# File activerecord/lib/active_record/relation.rb, line 342
    def explain(*options)
      ExplainProxy.new(self, options)
    end

Defined in activerecord/lib/active_record/relation.rb line 342 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Relation

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close