Skip to content

本页尚未翻译

本页内容仍为英文原文,源自官方文档 sql/dql/explain。中文翻译正在分批进行中。

Explain ​

EXPLAIN, EXPLAIN ANALYZE and EXPLAIN VERBOSE: reading and measuring a plan from SQL.

Applies to: Embedded ❌, Enterprise ✅

sql
EXPLAIN SELECT * FROM documents WHERE identifier < 1000
EXPLAIN ANALYZE SELECT * FROM documents WHERE identifier < 1000
StatementWhat it returns
EXPLAIN <query>Logical and physical plan, without executing the query.
EXPLAIN ANALYZE <query>Executes the query and annotates each operator with runtime metrics (rows, timing).
EXPLAIN VERBOSE <query>Adds intermediate optimizer plans on top of EXPLAIN.

The result is a small relation with plan_type and plan columns, read through the same client you use for regular queries. See Connecting.

SQL plans and the SDK's explain_plan and analyze_plan output share scan and index operators. Use the same approach to inspect index coverage and filter pushdown; SQL can also add joins, aggregates and other operators:

What it showsReading a plan: operators, pushdown, index usage.What it measuresReading the metrics, and a worked before/after.

What to look for ​

SignMeans
ScalarIndexQuerythe predicate used a scalar index
LanceScan with high bytes_readinspect the selected columns, filter pushdown and index use
FilterExec above a searchthe filter ran after search rather than pushing into it
ANNSubIndex / ANNIvfPartitionthe vector index was used

A LanceScan feeding a join is the common one worth acting on. See Joins.

For a table's columns and types without a plan, see DESCRIBE.