<varname>huge_pages</varname>).
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-huge-page-size" xreflabel="huge_page_size">
<term><varname>huge_page_size</varname> (<type>integer</type>)
<indexterm>
<primary><varname>huge_page_size</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Controls the size of huge pages, when they are enabled with
<xref linkend="guc-huge-pages"/>.
The default is zero (<literal>0</literal>).
When set to <literal>0</literal>, the default huge page size on the
system will be used. This parameter can only be set at server start.
</para>
<para>
Some commonly available page sizes on modern 64 bit server architectures include:
<literal>2MB</literal> and <literal>1GB</literal> (Intel and AMD), <literal>16MB</literal> and
<literal>16GB</literal> (IBM POWER), and <literal>64kB</literal>, <literal>2MB</literal>,
<literal>32MB</literal> and <literal>1GB</literal> (ARM). For more information
about usage and support, see <xref linkend="linux-huge-pages"/>.
</para>
<para>
Non-default settings are currently supported only on Linux.
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-temp-buffers" xreflabel="temp_buffers">
<term><varname>temp_buffers</varname> (<type>integer</type>)
<indexterm>
<primary><varname>temp_buffers</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Sets the maximum amount of memory used for temporary buffers within
each database session. These are session-local buffers used only
for access to temporary tables.
If this value is specified without units, it is taken as blocks,
that is <symbol>BLCKSZ</symbol> bytes, typically 8kB.
The default is eight megabytes (<literal>8MB</literal>).
(If <symbol>BLCKSZ</symbol> is not 8kB, the default value scales
proportionally to it.)
This setting can be changed within individual
sessions, but only before the first use of temporary tables
within the session; subsequent attempts to change the value will
have no effect on that session.
</para>
<para>
A session will allocate temporary buffers as needed up to the limit
given by <varname>temp_buffers</varname>. The cost of setting a large
value in sessions that do not actually need many temporary
buffers is only a buffer descriptor, or about 64 bytes, per
increment in <varname>temp_buffers</varname>. However if a buffer is
actually used an additional 8192 bytes will be consumed for it
(or in general, <symbol>BLCKSZ</symbol> bytes).
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-max-prepared-transactions" xreflabel="max_prepared_transactions">
<term><varname>max_prepared_transactions</varname> (<type>integer</type>)
<indexterm>
<primary><varname>max_prepared_transactions</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Sets the maximum number of transactions that can be in the
<quote>prepared</quote> state simultaneously (see <xref
linkend="sql-prepare-transaction"/>).
Setting this parameter to zero (which is the default)
disables the prepared-transaction feature.
This parameter can only be set at server start.
</para>
<para>
If you are not planning to use prepared transactions, this parameter
should be set to zero to prevent accidental creation of prepared
transactions. If you are using prepared transactions, you will
probably want <varname>max_prepared_transactions</varname> to be at
least as large as <xref