mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-03 01:46:57 +02:00
78ee60ed84
This doesn't have any external effect at the moment, but it will allow adding useful link-discoverability features later. Brar Piening, reviewed by Karl Pinc. Discussion: https://postgr.es/m/CAB8KJ=jpuQU9QJe4+RgWENrK5g9jhoysMw2nvTN_esoOU0=a_w@mail.gmail.com
72 lines
2.2 KiB
Plaintext
72 lines
2.2 KiB
Plaintext
<!-- doc/src/sgml/tsm-system-time.sgml -->
|
|
|
|
<sect1 id="tsm-system-time" xreflabel="tsm_system_time">
|
|
<title>tsm_system_time</title>
|
|
|
|
<indexterm zone="tsm-system-time">
|
|
<primary>tsm_system_time</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
The <filename>tsm_system_time</filename> module provides the table sampling method
|
|
<literal>SYSTEM_TIME</literal>, which can be used in
|
|
the <literal>TABLESAMPLE</literal> clause of a <link linkend="sql-select"><command>SELECT</command></link>
|
|
command.
|
|
</para>
|
|
|
|
<para>
|
|
This table sampling method accepts a single floating-point argument that
|
|
is the maximum number of milliseconds to spend reading the table. This
|
|
gives you direct control over how long the query takes, at the price that
|
|
the size of the sample becomes hard to predict. The resulting sample will
|
|
contain as many rows as could be read in the specified time, unless the
|
|
whole table has been read first.
|
|
</para>
|
|
|
|
<para>
|
|
Like the built-in <literal>SYSTEM</literal> sampling
|
|
method, <literal>SYSTEM_TIME</literal> performs block-level sampling, so
|
|
that the sample is not completely random but may be subject to clustering
|
|
effects, especially if only a small number of rows are selected.
|
|
</para>
|
|
|
|
<para>
|
|
<literal>SYSTEM_TIME</literal> does not support
|
|
the <literal>REPEATABLE</literal> clause.
|
|
</para>
|
|
|
|
<para>
|
|
This module is considered <quote>trusted</quote>, that is, it can be
|
|
installed by non-superusers who have <literal>CREATE</literal> privilege
|
|
on the current database.
|
|
</para>
|
|
|
|
<sect2 id="tsm-system-time-examples">
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
Here is an example of selecting a sample of a table with
|
|
<literal>SYSTEM_TIME</literal>. First install the extension:
|
|
</para>
|
|
|
|
<programlisting>
|
|
CREATE EXTENSION tsm_system_time;
|
|
</programlisting>
|
|
|
|
<para>
|
|
Then you can use it in a <command>SELECT</command> command, for instance:
|
|
|
|
<programlisting>
|
|
SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
This command will return as large a sample of <structname>my_table</structname> as
|
|
it can read in 1 second (1000 milliseconds). Of course, if the whole
|
|
table can be read in under 1 second, all its rows will be returned.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|