aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/tsm-system-rows.sgml
blob: 0c2f1779c9ad8750db938a6edb38480ae25b57cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!-- 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</> module provides the tablesample method
  <literal>SYSTEM_ROWS</literal>, which can be used inside the
  <command>TABLESAMPLE</command> clause of a <command>SELECT</command>.
 </para>

 <para>
  This tablesample method uses a linear probing algorithm to read sample
  of a table and uses actual number of rows as limit (unlike the
  <literal>SYSTEM</literal> tablesample method which limits by percentage
  of a table).
 </para>

 <sect2>
  <title>Examples</title>

  <para>
   Here is an example of selecting sample of a table with
   <literal>SYSTEM_ROWS</>. First install the extension:
  </para>

<programlisting>
CREATE EXTENSION tsm_system_rows;
</programlisting>

  <para>
   Then you can use it in <command>SELECT</command> command same way as other
   tablesample methods:

<programlisting>
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
</programlisting>
  </para>

  <para>
   The above command will return a sample of 100 rows from the table my_table
   (less if the table does not have 100 visible rows).
  </para>
 </sect2>

</sect1>