# Compute usage with SQL in Foundry Running queries or builds with SQL warehousing in Foundry consumes compute resources, measured in compute-seconds. This page explains how compute is used by the SQL warehouse and how usage is attributed to Foundry resources for reporting. Usage can be viewed from the [Resource management application](../../resource-management/overview/index.md). ## Foundry compute by query type The below table lays out Foundry compute used in SQL warehouse queries by query type and links to relevant detailed documentation. | Query engine | Query type | Supported resources | Compute rate | Usage attribution | | --- | --- | --- | --- | --- | | [Furnace](../furnace/index.md) | Direct read | Datasets, Iceberg tables, virtual tables, restricted views | Free | Not applicable | | [Furnace](../furnace/index.md) | Other reads (`SELECT`) | Datasets, Iceberg tables, virtual tables, restricted views | Furnace SQL | Split evenly across resources queried | | [Furnace](../furnace/index.md) | Writes (`CREATE`, `INSERT`, `UPDATE`, `DELETE`) | Datasets, Iceberg tables | Furnace SQL | Split evenly across resources written to | | [Legacy direct read engine](../../analytics-connectivity/architecture/index.md#direct-read-engine) | Direct read | Datasets | Not applicable | Not applicable | | [Legacy Spark engine](../../analytics-connectivity/architecture/index.md#spark-engine) | Other reads (`SELECT`) | Datasets, Iceberg tables, virtual tables, restricted views, objects (via materializations) | [Contour](../../contour/compute-usage/index.md) | Split evenly across resources queried | | [Ontology SQL](../ontology-sql/index.md) | Read (`SELECT`) | Object types, many-to-many links | [Foundry Ontology](../../ontologies/query-compute-usage/index.md#investigating-foundry-compute-usage-from-ontology-queries) | The saved application executing the query, or split evenly across resources queried if no saved application is present | ## Direct reads Direct reads let you preview or export existing data without incurring Furnace SQL compute charges. A direct read selects all columns or a subset of columns from a single resource, optionally using `LIMIT` to restrict the number of rows returned. You can also rename columns with `AS`. Queries that filter rows, sort results, join resources, aggregate values, remove duplicates with `DISTINCT`, or calculate new values are not direct reads. Subqueries and common table expressions (`WITH`) are also excluded. For example, the following direct read returns up to 100 rows from a dataset without transforming the data: ```sql SELECT * FROM `/path/to/dataset` LIMIT 100; ```