Docs/Data Explorer

Query Plans

Query Plans help you inspect how a database plans or executes a SQL statement. Use them when a query is slow, returns fewer rows than expected, or needs a quick check before you tune indexes or joins.

What this page helps you do

  • Run a query plan from the SQL Console.
  • Compare operators in the Plan table.
  • Inspect useful details for the selected node.
  • Use Raw output when you need the exact database response.

Prerequisites

  • Open Data Explorer.
  • Open a PostgreSQL, MySQL, or DuckDB-backed SQL Console tab.
  • Write a read query such as SELECT .... Avoid running plan analysis on mutating statements unless you understand how your database handles EXPLAIN ANALYZE.

Open a query plan

  1. Open the SQL Console for a supported connection.
  2. Write the SQL statement you want to inspect.
  3. Click Plan in the toolbar.
  4. Wait for the results panel to open.
  5. Use the Plan tab for the compact plan view.
  6. Use the Raw tab when you need the exact output returned by the database.

You can still write EXPLAIN manually. The Plan button is the fastest path for visual inspection because it asks the backend for a structured plan when the database supports it.

Plan view

The Plan tab is organized for comparison first:

AreaUse it for
Summary chipsPlanning time, execution time, root operator, largest estimate gap, operator counts
SearchFind operators, tables, indexes, conditions, or cache keys
Signals onlyFilter to rows with warnings or estimate gaps
Operator tableCompare nodes by operator, table/entity, rows, cost/runtime, and warnings
Details panelInspect fields that are specific to the selected node

Click a row in the operator table to update the details panel. Only one selected node is shown at a time.

Warnings and signals are related but not the same. A fast query can show Warnings 0 and still have rows with estimate-gap signals such as Overestimated x184. Use Signals only to focus on those rows.

Details panel

The details panel does not repeat every raw field. It shows extra information that is useful for the selected operator.

Operator typeDetails you may see
ScanRelation, alias, index, key parts, ref, scan direction, filter, index condition
JoinJoin type, join condition, merge/hash condition, join filter, inner unique
Memoize / cacheCache key, cache mode, hits, misses, peak memory
SortSort key, sort method, filesort/temp table flags, sort memory
AggregateStrategy, group key, output
LimitLimit-related rows when available
CostPostgreSQL cost/width or MySQL cost fields

Empty, false, zero, or irrelevant fields are hidden unless the value itself is useful.

PostgreSQL plans

For PostgreSQL, the visual Plan view uses JSON-format EXPLAIN.

When the plan is analyzed, the UI can show:

  • planning and execution time;
  • estimated rows compared with actual rows;
  • loops;
  • node runtime;
  • estimate gaps;
  • scan, join, cache, sort, aggregate, condition, and cost details.

Use Raw if you need the full PostgreSQL JSON output.

MySQL plans

For regular MySQL plans, the visual Plan view uses EXPLAIN FORMAT=JSON.

MySQL JSON plans do not include runtime loops, actual time, or actual rows. For that reason, the MySQL plan table focuses on fields that are present and useful:

  • table;
  • estimated rows;
  • index;
  • key parts;
  • ref;
  • cost;
  • warnings.

For MySQL EXPLAIN ANALYZE, MySQL returns TREE text. DBConvert Streams keeps that output intact and parses enough structure to show a Plan view when possible.

Raw tab

The Raw tab is the source-of-truth view. It shows the database output without custom interpretation.

Use Raw when you need to:

  • copy the original EXPLAIN result;
  • inspect a field that is not shown in the details panel;
  • compare DBConvert Streams output with a database CLI or another SQL tool.

Troubleshooting

The Plan button reports that the connection is not supported

Visual plan mode is supported for PostgreSQL, MySQL/MariaDB, and DuckDB-backed contexts. For other engines, run the database's native EXPLAIN manually if it is available.

The MySQL table has no time or loops columns

That is expected for EXPLAIN FORMAT=JSON. MySQL does not return runtime loops or actual time in that format. Use EXPLAIN ANALYZE when you need runtime execution data.

The Plan tab is less detailed than Raw

That is expected. Plan view is a readable summary and selected-node inspector. Raw remains the full database output.

Signals appear on a fast query

Signals are not automatic tuning instructions. Check the row count, operator type, and Raw output before changing SQL or indexes.