1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Add a GUC variable "synchronize_seqscans" to allow clients to disable the new

synchronized-scanning behavior, and make pg_dump disable sync scans so that
it will reliably preserve row ordering.  Per recent discussions.
This commit is contained in:
Tom Lane
2008-01-30 18:35:55 +00:00
parent 6dfa40d69f
commit 47df4f6688
5 changed files with 59 additions and 14 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.162 2008/01/27 19:12:28 tgl Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.163 2008/01/30 18:35:55 tgl Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
@ -4611,6 +4611,28 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
</listitem>
</varlistentry>
<varlistentry id="guc-synchronize-seqscans" xreflabel="synchronize_seqscans">
<term><varname>synchronize_seqscans</varname> (<type>boolean</type>)</term>
<indexterm>
<primary><varname>synchronize_seqscans</> configuration parameter</primary>
</indexterm>
<listitem>
<para>
This allows sequential scans of large tables to synchronize with each
other, so that concurrent scans read the same block at about the
same time and hence share the I/O workload. When this is enabled,
a scan might start in the middle of the table and then <quote>wrap
around</> the end to cover all rows, so as to synchronize with the
activity of scans already in progress. This can result in
unpredictable changes in the row ordering returned by queries that
have no <literal>ORDER BY</> clause. Setting this parameter to
<literal>off</> ensures the pre-8.3 behavior in which a sequential
scan always starts from the beginning of the table. The default
is <literal>on</>.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>