| Server IP : 172.67.134.114 / Your IP : 162.159.115.41 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/postgresql-docs/html/ |
Upload File : |
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.28. pg_prewarm</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="[email protected]" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="pgfreespacemap.html" title="F.27. pg_freespacemap" /><link rel="next" href="pgrowlocks.html" title="F.29. pgrowlocks" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.28. pg_prewarm</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="pgfreespacemap.html" title="F.27. pg_freespacemap">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.23 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="pgrowlocks.html" title="F.29. pgrowlocks">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="PGPREWARM"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.28. pg_prewarm</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="pgprewarm.html#id-1.11.7.37.4">F.28.1. Functions</a></span></dt><dt><span class="sect2"><a href="pgprewarm.html#id-1.11.7.37.5">F.28.2. Author</a></span></dt></dl></div><a id="id-1.11.7.37.2" class="indexterm"></a><p> The <code class="filename">pg_prewarm</code> module provides a convenient way
to load relation data into either the operating system buffer cache
or the <span class="productname">PostgreSQL</span> buffer cache.
</p><div class="sect2" id="id-1.11.7.37.4"><div class="titlepage"><div><div><h3 class="title">F.28.1. Functions</h3></div></div></div><pre class="synopsis">pg_prewarm(regclass, mode text default 'buffer', fork text default 'main',
first_block int8 default null,
last_block int8 default null) RETURNS int8</pre><p> The first argument is the relation to be prewarmed. The second argument
is the prewarming method to be used, as further discussed below; the third
is the relation fork to be prewarmed, usually <code class="literal">main</code>.
The fourth argument is the first block number to prewarm
(<code class="literal">NULL</code> is accepted as a synonym for zero). The fifth
argument is the last block number to prewarm (<code class="literal">NULL</code>
means prewarm through the last block in the relation). The return value
is the number of blocks prewarmed.
</p><p> There are three available prewarming methods. <code class="literal">prefetch</code>
issues asynchronous prefetch requests to the operating system, if this is
supported, or throws an error otherwise. <code class="literal">read</code> reads
the requested range of blocks; unlike <code class="literal">prefetch</code>, this is
synchronous and supported on all platforms and builds, but may be slower.
<code class="literal">buffer</code> reads the requested range of blocks into the
database buffer cache.
</p><p> Note that with any of these methods, attempting to prewarm more blocks than
can be cached — by the OS when using <code class="literal">prefetch</code> or
<code class="literal">read</code>, or by <span class="productname">PostgreSQL</span> when
using <code class="literal">buffer</code> — will likely result in lower-numbered
blocks being evicted as higher numbered blocks are read in. Prewarmed data
also enjoys no special protection from cache evictions, so it is possible
that other system activity may evict the newly prewarmed blocks shortly
after they are read; conversely, prewarming may also evict other data from
cache. For these reasons, prewarming is typically most useful at startup,
when caches are largely empty.
</p></div><div class="sect2" id="id-1.11.7.37.5"><div class="titlepage"><div><div><h3 class="title">F.28.2. Author</h3></div></div></div><p> Robert Haas <code class="email"><<a class="email" href="mailto:[email protected]">[email protected]</a>></code>
</p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pgfreespacemap.html" title="F.27. pg_freespacemap">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pgrowlocks.html" title="F.29. pgrowlocks">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F.27. pg_freespacemap </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.23 Documentation">Home</a></td><td width="40%" align="right" valign="top"> F.29. pgrowlocks</td></tr></table></div></body></html>