The recordings feature helps developers debug and isolate sets of queries into distinct sessions, known as recordings. This targeted approach enables precise performance analysis and optimization by preventing the mixing of queries from different applications or test rounds, leading to clearer insights and more effective debugging.

## Managing a recording session

You can manually start and stop recording sessions via the [Optimize dashboard](https://console.prisma.io/optimize) by clicking the **Start Recording** and **Stop Recording** buttons.

:::warning
A recording will automatically stop if the 10k query limit is reached or if the Prisma schema of the app is changed.
:::

## Identifying a recording session

You can rename and tag your recording sessions for easy identification and context. Click on the default name of the session and type the desired name.

## Data captured in a recording session

Each recording session captures detailed insights about the queries executed in your app, including:

- All queries executed during the session.
- The raw query generated and sent to the database by Prisma ORM as **Raw Query**.
- The number of times a query pattern was executed, listed as **Count**.
- [Query performance metrics](/postgres/query-optimization/performance-metrics).
- Errors encountered during query execution.

Each recording can include up to 10k queries. There are no limits on storage retention.

## Recommendations from a recording session

When a recording session ends, Optimize generates recommendations such as:

- [Excessive number of rows returned](/postgres/query-optimization/recommendations/excessive-number-of-rows-returned)
- [Full table scans caused by LIKE operations](/postgres/query-optimization/recommendations/full-table-scans-caused-by-like-operations)
- [Queries on unindexed columns](/postgres/query-optimization/recommendations/queries-on-unindexed-columns)
- [Repeated query](/postgres/query-optimization/recommendations/repeated-query)
- [Overfetching](/postgres/query-optimization/recommendations/select-returning)
- [Using `@db.Money`](/postgres/query-optimization/recommendations/avoid-db-money)
- [Using `@db.Char(n)`](/postgres/query-optimization/recommendations/avoid-char)
- [Using `@db.VarChar(n)`](/postgres/query-optimization/recommendations/avoid-varchar)
- [Using `timestamp(0)` or `timestamptz(0)`](/postgres/query-optimization/recommendations/avoid-timestamp-timestampz-0)
- [Using `CURRENT_TIME`](/postgres/query-optimization/recommendations/current-time)
- [Storing large objects or BLOBs in the database](/postgres/query-optimization/recommendations/storing-blob-in-database)
- [Indexing on unique columns](/postgres/query-optimization/recommendations/indexing-on-unique-columns)
- [Long-running transactions](/postgres/query-optimization/recommendations/long-running-transactions)
- [Unnecessary indexes](/postgres/query-optimization/recommendations/unnecessary-indexes)

:::info
Use [Prisma AI](/postgres/query-optimization/prisma-ai) to ask follow-up questions about a recommendation.
:::

Learn more about the recommendations generated by Optimize [here](/postgres/query-optimization/recommendations).
---

# Excessive number of rows returned