Home Explore Blog CI



postgresql

27th chunk of `doc/src/sgml/config.sgml`
2725d095894106ef6f8ca1ab9005b13a6675fdefd8a62b4b0000000100000fa3
 <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

Title: Configuration Parameters: Huge Page Size, Temporary Buffers, and Max Prepared Transactions
Summary
This section details three configuration parameters in PostgreSQL. First, it revisits `huge_page_size`, detailing its purpose in controlling the size of huge pages, its default value, and supported architectures. Second, it explains `temp_buffers`, which sets the maximum memory used for temporary buffers within a database session and how it affects temporary table access. Finally, it covers `max_prepared_transactions`, which limits the number of transactions in a 'prepared' state and should be set to zero if prepared transactions are not used.