> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Query performance basics

> Practical levers for faster, cheaper queries in e6data - sizing, caching, execution mode, the transpiler, and reading execution details.

A handful of levers cover most query-performance work in e6data. This page is a practical starting point; for the underlying mechanics, see [How e6data works](/query/concepts/how-query-engine-works).

## Start with the query

* **Filter early and prune partitions.** Predicates on partition columns let the engine skip data it never reads. Queries that scan whole fact tables without filters are the most common cause of slowness.
* **Select only the columns you need.** Wide `SELECT *` over columnar data reads more than necessary.
* **Set a row limit while exploring.** Use a `LIMIT` to preview results without running unbounded scans - see [Run queries and view results](/query/querying/run-queries-and-view-results).

## Read the execution details

After a run, open the query's execution details to see the **Total Elapsed Time** broken into planning, queueing, and execution, plus the **Query Profile** showing the most expensive steps. This tells you whether time is going to queueing (cluster under-provisioned), planning, or execution (the query itself). See [Run queries and view results](/query/querying/run-queries-and-view-results#execution-details).

## Cluster-side levers

| Lever | When it helps | Where |
| - | - | - |
| **Right-size the cluster** | Queries queue or run slowly under concurrency | [Cluster sizing and scaling](/query/clusters/sizing-and-scaling) |
| **Autoscaling** | Variable or spiky load | [Cluster sizing and scaling](/query/clusters/sizing-and-scaling) |
| **Result caching** | The same queries run repeatedly against unchanged data | [Cluster sizing and scaling](/query/clusters/sizing-and-scaling#result-caching) |
| **Native execution mode** | Scan-heavy queries with simple filters, joins, and aggregations | [Cluster sizing and scaling](/query/clusters/sizing-and-scaling#execution-modes) |
| **SQL transpiler** | You're running SQL written for another dialect (Snowflake, Trino, Databricks) | Cluster settings - see [Create and manage clusters](/query/clusters/create-and-manage#configure-a-cluster) |

## A simple workflow

1. Run the query and open its execution details.
2. If queueing dominates, scale the cluster up or enable autoscaling.
3. If execution dominates, look at the Query Profile - add filters, prune partitions, or try native execution for scan-heavy patterns.
4. For repeated reports, enable result caching.
5. Measure again.

## See also

* [Run queries and view results](/query/querying/run-queries-and-view-results)
* [Cluster sizing and scaling](/query/clusters/sizing-and-scaling)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.