# Materialization

When you run transformation in a model you can define how the generated results are stored, or materialized, in the target database. ReOrc supports the following materialization options.

* Table
* View
* Incremental
* Ephemeral

Depending on your transformation use cases, you can select different materialization strategies. You can view and configure materialization of a model in the [**Metadata**](https://docs.reorc.com/asset-management/metadata#view-and-edit-metadata) section.

{% hint style="info" %}
By default, all models are materialized as tables.
{% endhint %}

## Table

**Definition:** Creates a table and stores the results when building the model. Every time the model is run, the table is dropped and recreated with the latest data.

**Use case:** Use when you want to physically store the data and prefer faster query performance at the cost of extra space.

## View

**Definition:** Creates a view in the database. A view is simply a stored query and  does not hold data; instead, it provides a virtual table environment for various complex operations.

**Use case:** Use views when you want to avoid storing a physical table and don’t mind the performance cost of re-running the query every time the view is accessed.

## Incremental

**Definition:** Adds new or updated records to an existing table without recreating the entire table. &#x20;

**Use case:** Ideal for very large datasets where it would be inefficient to rebuild the entire table each time. Only processes new or modified data since the last run.

## Ephemeral

**Definition:** The model is not materialized at all. Instead, the model snippet is interpolated into the downstream models that reference it.  This is similar to treating the model snippet as a common table expression (CTE).

**Use case:** Useful for intermediate computations that don't need to be stored but are referenced in downstream models.&#x20;
