---
title: "PostgreSQL Extensions: pg_prewarm"
description: "​pg_prewarm is a PostgreSQL extension that allows developers to load relation data into either the operating system's buffer cache or PostgreSQL's shared."
section: "Postgres extensions"
---

> **TimescaleDB is now Tiger Data.**

# 

`​pg_prewarm` is a [PostgreSQL extension](https://www.tigerdata.com/blog/top-8-postgresql-extensions) that allows developers to load relation data into either the operating system's buffer cache or PostgreSQL's shared buffers. This is particularly useful for reducing the time to warm up the cache after a database restart, hence the name 'pg_prewarm.'​

## Installing the pg_prewarm Extension

​To install the `pg_prewarm` extension, you need to have PostgreSQL installed on your system. Once you have PostgreSQL, follow these steps:

1. Open your PostgreSQL command line interface.

2. Connect to the database where you want to install the extension.

3. Run the following command:

`CREATE EXTENSION pg_prewarm;
​`

This command will install the `pg_prewarm` extension in your current database. 

## ​Using the pg_prewarm Extension

​Once you have installed the `pg_prewarm `extension, you can use it to prewarm tables in your database, which you know you will be read soon. Here's how:

1. Connect to your database.

2. Run the following command:

`SELECT pg_prewarm('your_table_name');
`

Replace 'your_table_name' with the name of the table you want to prewarm. This command will load the data from the specified table into the cache.

### Time-series use cases for the pg_prewarm extension

The `pg_prewarm` extension is handy in time-series databases where data is continuously added chronologically. By preloading the most recent chunks of a [hypertable](https://www.tigerdata.com/blog/database-indexes-in-postgresql-and-timescale-cloud-your-questions-answered) into the cache after a restart, you can significantly reduce the time to execute queries on these tables.

#### 
Using pg_prewarm with Timescale and time-series data

​If you're using Timescale, a time-series cloud database built on PostgreSQL, you can use the `pg_prewarm` extension to improve the performance of your database. Here's how:

1. Install the `pg_prewarm` extension in your Timescale database. On [Timescale](https://console.cloud.timescale.com/signup), you can find available extensions by going to `Operations > Extensions` from your service overview, which will also give you installation instructions.

2. Use the `pg_prewarm` function to prewarm your hypertables.

SELECT pg_prewarm(format('%s.%s', chunk_schema, chunk_name))
FROM
  (SELECT * FROM timescaledb_information.chunks 
   WHERE hypertable_name = 'your_hypertable_name' AND 
                 range_end > now() - interval '1 day
  ) a;


​Replace 'your_hypertable_name' with the name of your hypertable and ‘1 day’ with the lookback period to match chunks. In this example, you will prewarm any chunks that cover the last day.

This command will load the data from the specified hypertable chunks into the cache, improving the performance of your queries on the most recent day of data in the hypertable.

## Learn More

Looking to learn more about extending PostgreSQL for scale and times-series scenarios? [<u>Check out the tutorials in the Timescale documentation</u>](https://docs.timescale.com/tutorials/latest/?ref=timescale.com) to get started.