# SQL Database limits

[SQL Database](/en/documentation/platform/sql-database/) bounds the name of a database, the columns a table holds, the dimensions a vector carries, and the databases one list request returns. This page states each bound, what the platform does past it, and the storage and rows each service plan includes in a month. SQL Database is a Preview product: it is not enabled by default, and access is requested through a support ticket. To request access, or a higher limit for the account, contact the [technical support](/en/documentation/support/) team.

---

## Default limits

SQL Database applies each bound below on every plan. Where the Azion API rejects a request past a bound, the response carries an `errors` array, and the Past the limit column names the error code and the title that array carries.

| Scope                                     | Limit                                  | Past the limit                                                                        |
| ----------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------- |
| Database name length (`name`)             | 6 to 50 characters                     | `14000` `Invalid Database Name Format`, plus `10048` `Min Length` below 6 characters. |
| Database name characters                  | Letters, numbers, and the hyphen (`-`) | `14000` `Invalid Database Name Format`.                                               |
| Database name uniqueness                  | One name per account                   | `14001` `Name Already In Use.`                                                        |
| Columns per table                         | 2,000 columns                          | The statement fails with `too many columns on <table>` inside HTTP `200`.             |
| Vector dimensions                         | 65,536 dimensions                      | The statement fails with `vector: max size exceeded 65536` inside HTTP `200`.         |
| Databases per list response (`page_size`) | 1 to 100, default 10                   | `10097` `Invalid Page Size`.                                                          |
| Renaming a database                       | Not supported                          | `10007` `Method Not Allowed`.                                                         |

The bounds on columns and on vector dimensions are enforced when the statement runs, not when the request is validated. `CREATE TABLE t (v F32_BLOB(65537));` succeeds, because the dialect does not validate the parameter a column type carries. The 65,536-dimension ceiling is enforced by `vector()` when a value is built from its text form, rather than by the schema.

Both statement-level errors arrive inside an HTTP `200`, in the `error` key of that statement's entry in `data`, and not in an `errors` array. A client that reads only the HTTP status treats a rejected statement as success. Read the `error` key of every entry the response returns.

---

## Limits per plan

The ceilings below are what a service plan allows. They are separate from the metered amounts the same plan includes, which the next section states.

| Ceiling                     | Hobby  | Pro    | Enterprise |
| --------------------------- | ------ | ------ | ---------- |
| Databases                   | 10     | 50     | 200        |
| Maximum database size       | 200 MB | 500 MB | 2 GB       |
| Maximum storage per account | 5 GB   | 50 GB  | 300 GB     |

---

## Included usage per plan

Azion offers three service plans: Hobby, Pro, and Enterprise. Each one includes an amount of storage and a number of rows read every month, and a number of rows written every day. SQL Database is a Preview product on all three.

A query returns `rows_read` and `rows_written` beside the result of every statement, so the cost of a statement is measured from the response that carries it. For the response the two fields sit in, refer to [Databases and queries](/en/documentation/platform/sql-database/databases-and-queries/).

| Metric       | Hobby                 | Pro                   | Enterprise |
| ------------ | --------------------- | --------------------- | ---------- |
| Storage      | 1 GB / month included | 1 GB / month included | Custom     |
| Rows read    | 150M / month included | 150M / month included | Custom     |
| Rows written | 20,000 / day included | 20,000 / day included | Custom     |

The plan decides what happens past an included amount. On Hobby, use beyond the included amount may require an upgrade, and Azion may restrict the account. On Pro and Enterprise, Azion bills the additional consumption at on-demand rates, and configurable spend limits bound the additional charge. For the rates, refer to [Pricing](/en/documentation/fundamentals/pricing/#sql-database). For the comparison of what the three plans carry, refer to [Azion pricing](https://www.azion.com/en/pricing/).

---

## Related resources

- [Databases and queries](/en/documentation/platform/sql-database/databases-and-queries.md): The fields, operations, and error codes the name and paging bounds on this page apply to.
- [Vector search](/en/documentation/platform/sql-database/vector-search.md): The vector types, functions, and index the dimension ceiling applies to.
- [How SQL Database works](/en/documentation/platform/sql-database/how-it-works.md): How a query reaches the data, and what a statement reads and writes to spend an included amount.
- [Troubleshooting](/en/documentation/platform/sql-database/troubleshooting.md): What to do about the error a request past one of these bounds returns.
- [Pricing](/en/documentation/fundamentals/pricing.md#sql-database): The rate that applies to storage and rows past the amount a plan includes.
