70 lines
2.0 KiB
Plaintext
70 lines
2.0 KiB
Plaintext
<!-- doc/src/sgml/tsm-system-rows.sgml -->
|
|
|
|
<sect1 id="tsm-system-rows" xreflabel="tsm_system_rows">
|
|
<title>tsm_system_rows</title>
|
|
|
|
<indexterm zone="tsm-system-rows">
|
|
<primary>tsm_system_rows</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
The <filename>tsm_system_rows</filename> module provides the table sampling method
|
|
<literal>SYSTEM_ROWS</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 integer argument that is the
|
|
maximum number of rows to read. The resulting sample will always contain
|
|
exactly that many rows, unless the table does not contain enough rows, in
|
|
which case the whole table is selected.
|
|
</para>
|
|
|
|
<para>
|
|
Like the built-in <literal>SYSTEM</literal> sampling
|
|
method, <literal>SYSTEM_ROWS</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 requested.
|
|
</para>
|
|
|
|
<para>
|
|
<literal>SYSTEM_ROWS</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>
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
Here is an example of selecting a sample of a table with
|
|
<literal>SYSTEM_ROWS</literal>. First install the extension:
|
|
</para>
|
|
|
|
<programlisting>
|
|
CREATE EXTENSION tsm_system_rows;
|
|
</programlisting>
|
|
|
|
<para>
|
|
Then you can use it in a <command>SELECT</command> command, for instance:
|
|
|
|
<programlisting>
|
|
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
This command will return a sample of 100 rows from the
|
|
table <structname>my_table</structname> (unless the table does not have 100
|
|
visible rows, in which case all its rows are returned).
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|