> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify-poc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# hypertable_approximate_detailed_size()

> Get detailed information about approximate disk space used by a hypertable

export const PG = 'Postgres';

export const CAGG = 'continuous aggregate';

export const CHUNK_CAP = 'Chunk';

export const CHUNK = 'chunk';

export const HYPERTABLE_CAP = 'Hypertable';

export const HYPERTABLE = 'hypertable';

<Icon icon="tag" iconType="duotone" /> Since [2.14.0][tsdb-2.14.0]

Get detailed information about approximate disk space used by a {HYPERTABLE} or
{CAGG}, returning size information for the table
itself, any indexes on the table, any toast tables, and the total
size of all. All sizes are reported in bytes.

When a {CAGG} name is provided, the function
transparently looks up the backing {HYPERTABLE} and returns its approximate
size statistics instead.

<Note>
  This function relies on the per backend caching using the in-built
  {PG} storage manager layer to compute the approximate size
  cheaply. The PG cache invalidation clears off the cached size for a
  {CHUNK} when DML happens into it. That size cache is thus able to get
  the latest size in a matter of minutes. Also, due to the backend
  caching, any long running session will only fetch latest data for new
  or modified {CHUNK}s and can use the cached data (which is calculated
  afresh the first time around) effectively for older {CHUNK}s. Thus it
  is recommended to use a single connected {PG} backend session to
  compute the approximate sizes of {HYPERTABLE}s to get faster results.
</Note>

For more information about using {HYPERTABLE}s, including {CHUNK} size partitioning,
see the [hypertable section][hypertable-docs].

## Samples

Get the approximate size information for a {HYPERTABLE}.

```sql theme={"dark"}
SELECT * FROM hypertable_approximate_detailed_size('hyper_table');
 table_bytes | index_bytes | toast_bytes | total_bytes
-------------+-------------+-------------+-------------
        8192 |       24576 |       32768 |       65536
```

## Arguments

The syntax is:

```sql theme={"dark"}
SELECT * FROM hypertable_approximate_detailed_size('<hypertable_name>');
```

| Name         | Type     | Default | Required | Description                                                              |
| ------------ | -------- | ------- | -------- | ------------------------------------------------------------------------ |
| `hypertable` | REGCLASS | -       | ✔        | Hypertable or continuous aggregate to show detailed approximate size of. |

## Returns

| Column       | Type   | Description                                                                                    |
| ------------ | ------ | ---------------------------------------------------------------------------------------------- |
| table\_bytes | BIGINT | Approximate disk space used by main\_table (like `pg_relation_size(main_table)`)               |
| index\_bytes | BIGINT | Approximate disk space used by indexes                                                         |
| toast\_bytes | BIGINT | Approximate disk space of toast tables                                                         |
| total\_bytes | BIGINT | Approximate total disk space used by the specified table, including all indexes and TOAST data |

<Note>
  If executed on a relation that is not a {HYPERTABLE}, the function returns `NULL`.
</Note>

[hypertable-docs]: /use-timescale/hypertables/

[tsdb-2.14.0]: https://github.com/timescale/timescaledb/releases/tag/2.14.0
