外观
本页尚未翻译
本页内容仍为英文原文,源自官方文档 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| Statement | What 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 to look for
| Sign | Means |
|---|---|
ScalarIndexQuery | the predicate used a scalar index |
LanceScan with high bytes_read | inspect the selected columns, filter pushdown and index use |
FilterExec above a search | the filter ran after search rather than pushing into it |
ANNSubIndex / ANNIvfPartition | the 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.