aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/backup.sgml6
-rw-r--r--doc/src/sgml/installation.sgml4
-rw-r--r--doc/src/sgml/perform.sgml14
-rw-r--r--doc/src/sgml/plpgsql.sgml4
-rw-r--r--doc/src/sgml/ref/postgres-ref.sgml17
-rw-r--r--doc/src/sgml/ref/postmaster.sgml8
-rw-r--r--doc/src/sgml/runtime.sgml84
7 files changed, 70 insertions, 67 deletions
diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 864fb37f982..c235cf9e4f5 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.34 2004/01/19 20:12:30 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.35 2004/02/03 17:34:02 tgl Exp $
-->
<chapter id="backup">
<title>Backup and Restore</title>
@@ -156,8 +156,8 @@ pg_dump -h <replaceable>host1</> <replaceable>dbname</> | psql -h <replaceable>h
<tip>
<para>
Restore performance can be improved by increasing the
- configuration parameter <varname>sort_mem</varname> (see <xref
- linkend="runtime-config-resource-memory">).
+ configuration parameter <varname>maintenance_work_mem</varname>
+ (see <xref linkend="runtime-config-resource-memory">).
</para>
</tip>
</sect2>
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 368d82e3cbf..6cfe75aeae0 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.193 2004/01/19 21:20:06 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.194 2004/02/03 17:34:02 tgl Exp $ -->
<chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]>
@@ -1399,7 +1399,7 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
not designed for optimum performance. To achieve optimum
performance, several server parameters must be adjusted, the two
most common being <varname>shared_buffers</varname> and
- <varname> sort_mem</varname> mentioned in the documentation.
+ <varname>work_mem</varname>.
Other parameters mentioned in the documentation also affect
performance.
</para>
diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml
index 923612c290c..c7d947eaf7a 100644
--- a/doc/src/sgml/perform.sgml
+++ b/doc/src/sgml/perform.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.40 2004/01/11 05:46:58 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.41 2004/02/03 17:34:02 tgl Exp $
-->
<chapter id="performance-tips">
@@ -684,16 +684,18 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
</para>
</sect2>
- <sect2 id="populate-sort-mem">
- <title>Increase <varname>sort_mem</varname></title>
+ <sect2 id="populate-work-mem">
+ <title>Increase <varname>maintenance_work_mem</varname></title>
<para>
- Temporarily increasing the <varname>sort_mem</varname>
+ Temporarily increasing the <varname>maintenance_work_mem</varname>
configuration variable when restoring large amounts of data can
lead to improved performance. This is because when a B-tree index
is created from scratch, the existing content of the table needs
- to be sorted. Allowing the merge sort to use more buffer pages
- means that fewer merge passes will be required.
+ to be sorted. Allowing the merge sort to use more memory
+ means that fewer merge passes will be required. A larger setting for
+ <varname>maintenance_work_mem</varname> may also speed up validation
+ of foreign-key constraints.
</para>
</sect2>
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index 0e7f7ad5d0a..7cce45b75e0 100644
--- a/doc/src/sgml/plpgsql.sgml
+++ b/doc/src/sgml/plpgsql.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.34 2004/01/24 22:05:08 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.35 2004/02/03 17:34:02 tgl Exp $
-->
<chapter id="plpgsql">
@@ -1354,7 +1354,7 @@ SELECT * FROM some_func();
allow users to define set-returning functions
that do not have this limitation. Currently, the point at
which data begins being written to disk is controlled by the
- <varname>sort_mem</> configuration variable. Administrators
+ <varname>work_mem</> configuration variable. Administrators
who have sufficient memory to store larger result sets in
memory should consider increasing this parameter.
</para>
diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml
index 3ae6003120b..cfb16a78686 100644
--- a/doc/src/sgml/ref/postgres-ref.sgml
+++ b/doc/src/sgml/ref/postgres-ref.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.42 2003/11/29 19:51:39 pgsql Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.43 2004/02/03 17:34:02 tgl Exp $
PostgreSQL documentation
-->
@@ -41,7 +41,7 @@ PostgreSQL documentation
<arg>-s</arg>
<arg>-t<group choice="plain"><arg>pa</arg><arg>pl</arg><arg>ex</arg></group></arg>
</group>
- <arg>-S <replaceable>sort-mem</replaceable></arg>
+ <arg>-S <replaceable>work-mem</replaceable></arg>
<arg>-W <replaceable>seconds</replaceable></arg>
<arg>--<replaceable>name</replaceable>=<replaceable>value</replaceable></arg>
<arg choice="plain"><replaceable>database</replaceable></arg>
@@ -64,7 +64,7 @@ PostgreSQL documentation
<arg>-s</arg>
<arg>-t<group choice="plain"><arg>pa</arg><arg>pl</arg><arg>ex</arg></group></arg>
</group>
- <arg>-S <replaceable>sort-mem</replaceable></arg>
+ <arg>-S <replaceable>work-mem</replaceable></arg>
<arg>-v <replaceable>protocol</replaceable></arg>
<arg>-W <replaceable>seconds</replaceable></arg>
<arg>--<replaceable>name</replaceable>=<replaceable>value</replaceable></arg>
@@ -197,16 +197,13 @@ PostgreSQL documentation
</varlistentry>
<varlistentry>
- <term><option>-S</option> <replaceable class="parameter">sort-mem</replaceable></term>
+ <term><option>-S</option> <replaceable class="parameter">work-mem</replaceable></term>
<listitem>
<para>
Specifies the amount of memory to be used by internal sorts and hashes
- before resorting to temporary disk files. The value is specified in
- kilobytes, and defaults to 1024. Note that for a complex query,
- several sorts and/or hashes might be running in parallel, and each one
- will be allowed to use as much as
- <replaceable class="parameter">sort-mem</replaceable> kilobytes
- before it starts to put data into temporary files.
+ before resorting to temporary disk files. See the description of the
+ <varname>work_mem</> configuration parameter in <xref
+ linkend="runtime-config-resource-memory">.
</para>
</listitem>
</varlistentry>
diff --git a/doc/src/sgml/ref/postmaster.sgml b/doc/src/sgml/ref/postmaster.sgml
index 6623b247de7..d829a7e2d11 100644
--- a/doc/src/sgml/ref/postmaster.sgml
+++ b/doc/src/sgml/ref/postmaster.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.44 2003/12/14 00:15:03 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.45 2004/02/03 17:34:02 tgl Exp $
PostgreSQL documentation
-->
@@ -541,10 +541,10 @@ PostgreSQL documentation
<para>
Named run-time parameters can be set in either of these styles:
<screen>
-<prompt>$</prompt> <userinput>postmaster -c sort_mem=1234</userinput>
-<prompt>$</prompt> <userinput>postmaster --sort-mem=1234</userinput>
+<prompt>$</prompt> <userinput>postmaster -c work_mem=1234</userinput>
+<prompt>$</prompt> <userinput>postmaster --work-mem=1234</userinput>
</screen>
- Either form overrides whatever setting might exist for <varname>sort_mem</>
+ Either form overrides whatever setting might exist for <varname>work_mem</>
in <filename>postgresql.conf</>. Notice that underscores in parameter
names can be written as either underscore or dash on the command line.
</para>
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index a38e6c01598..71d7f0621c8 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.235 2004/01/27 16:51:43 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.236 2004/02/03 17:34:02 tgl Exp $
-->
<Chapter Id="runtime">
@@ -850,37 +850,41 @@ SET ENABLE_SEQSCAN TO OFF;
</varlistentry>
<varlistentry>
- <term><varname>sort_mem</varname> (<type>integer</type>)</term>
+ <term><varname>work_mem</varname> (<type>integer</type>)</term>
<listitem>
<para>
- Specifies the amount of memory to be used by internal sort operations and
- hash tables before switching to temporary disk files. The value is
+ Specifies the amount of memory to be used by internal sort operations
+ and hash tables before switching to temporary disk files. The value is
specified in kilobytes, and defaults to 1024 kilobytes (1 MB).
Note that for a complex query, several sort or hash operations might be
running in parallel; each one will be allowed to use as much memory
as this value specifies before it starts to put data into temporary
- files. Also, several running sessions could be doing
- sort operations simultaneously. So the total memory used could be many
- times the value of <varname>sort_mem</varname>. Sort operations are used
- by <literal>ORDER BY</>, merge joins, and <command>CREATE INDEX</>.
+ files. Also, several running sessions could be doing such operations
+ concurrently. So the total memory used could be many
+ times the value of <varname>work_mem</varname>; it is necessary to
+ keep this fact in mind when choosing the value. Sort operations are
+ used for <literal>ORDER BY</>, <literal>DISTINCT</>, and
+ merge joins.
Hash tables are used in hash joins, hash-based aggregation, and
- hash-based processing of <literal>IN</> subqueries. Because
- <command>CREATE INDEX</> is used when restoring a database,
- increasing <varname>sort_mem</varname> before doing a large
- restore operation can improve performance.
+ hash-based processing of <literal>IN</> subqueries.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>vacuum_mem</varname> (<type>integer</type>)</term>
+ <term><varname>maintenance_work_mem</varname> (<type>integer</type>)</term>
<listitem>
<para>
- Specifies the maximum amount of memory to be used by
- <command>VACUUM</command> to keep track of to-be-reclaimed
- rows. The value is specified in kilobytes, and defaults to
- 8192 kB. Larger settings may improve the speed of
- vacuuming large tables that have many deleted rows.
+ Specifies the maximum amount of memory to be used in maintenance
+ operations, such as <command>VACUUM</command>, <command>CREATE
+ INDEX</>, and <command>ALTER TABLE ADD FOREIGN KEY</>.
+ The value is specified in kilobytes, and defaults to 16384 kilobytes
+ (16 MB). Since only one of these operations can be executed at
+ a time by a database session, and an installation normally doesn't
+ have very many of them happening concurrently, it's safe to set this
+ value significantly larger than <varname>work_mem</varname>. Larger
+ settings may improve performance for vacuuming and for restoring
+ database dumps.
</para>
</listitem>
</varlistentry>
@@ -1412,25 +1416,25 @@ SET ENABLE_SEQSCAN TO OFF;
<para>
Various tuning parameters for the genetic query optimization
algorithm. The recommended one to modify is
- <varname>geqo_effort</varname>, which can range from 1 to 10 with
- a default of 5. Larger values increase the time spent in planning
- but make it more likely that a good plan will be found.
- <varname>geqo_effort</varname> doesn't actually do anything directly,
- it is just used to compute the default values for the other
- parameters. If you prefer, you can set the other parameters by hand
- instead.
- The pool size is the number of individuals in the genetic population.
- It must be at least two, and useful values are typically 100 to 1000.
- If it is set to zero (the default setting) then a suitable default
- is chosen based on <varname>geqo_effort</varname> and the number of
- tables in the query.
- Generations specifies the number of iterations of the algorithm.
- It must be at least one, and useful values are in the same range
- as the pool size.
- If it is set to zero (the default setting) then a suitable default
- is chosen based on the pool size.
- The run time of the algorithm is roughly proportional to the sum of
- pool size and generations.
+ <varname>geqo_effort</varname>, which can range from 1 to 10 with
+ a default of 5. Larger values increase the time spent in planning
+ but make it more likely that a good plan will be found.
+ <varname>geqo_effort</varname> doesn't actually do anything directly,
+ it is just used to compute the default values for the other
+ parameters. If you prefer, you can set the other parameters by hand
+ instead.
+ The pool size is the number of individuals in the genetic population.
+ It must be at least two, and useful values are typically 100 to 1000.
+ If it is set to zero (the default setting) then a suitable default
+ is chosen based on <varname>geqo_effort</varname> and the number of
+ tables in the query.
+ Generations specifies the number of iterations of the algorithm.
+ It must be at least one, and useful values are in the same range
+ as the pool size.
+ If it is set to zero (the default setting) then a suitable default
+ is chosen based on the pool size.
+ The run time of the algorithm is roughly proportional to the sum of
+ pool size and generations.
The selection bias is the selective pressure within the
population. Values can be from 1.50 to 2.00; the latter is the
default.
@@ -2840,7 +2844,7 @@ $ <userinput>postmaster -o '-S 1024 -s'</userinput>
<row>
<entry><option>-S <replaceable>x</replaceable></option><footnoteref linkend="fn.runtime-config-short">
</entry>
- <entry><literal>sort_mem = <replaceable>x</replaceable></></entry>
+ <entry><literal>work_mem = <replaceable>x</replaceable></></entry>
</row>
<row>
@@ -3230,7 +3234,7 @@ kernel.shmmax = 134217728
<para>
In OS X 10.2 and earlier, edit the file
<filename>/System/Library/StartupItems/SystemTuning/SystemTuning</>
- and change the values in the following commands:
+ and change the values in the following commands:
<programlisting>
sysctl -w kern.sysv.shmmax
sysctl -w kern.sysv.shmmin
@@ -3239,7 +3243,7 @@ sysctl -w kern.sysv.shmseg
sysctl -w kern.sysv.shmall
</programlisting>
In OS X 10.3, these commands have been moved to <filename>/etc/rc</>
- and must be edited there.
+ and must be edited there.
</para>
</listitem>
</varlistentry>