★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.42. tsm_system_rows

tsm_system_rowsモジュールはSYSTEM_ROWSというテーブルサンプリングメソッドを提供します。 これはSELECTコマンドのTABLESAMPLE句で利用できます。

このテーブルサンプリングメソッドは読み込む最大行数を指定する整数の引数を1つ取ります。 結果のサンプルにはいつでもそれと正確に同じだけの行数が含まれます。 ただしテーブルにそれだけの行数がないときは、テーブル全体が選択されることになります。

組み込みのSYSTEMサンプリングメソッドと同様、SYSTEM_ROWSはブロックレベルのサンプリングを行うため、サンプルは完全にはランダムではなく、特にごく少数の行が要求されたときはクラスタリングの影響を受けます。

SYSTEM_ROWSREPEATABLE句をサポートしません。

F.42.1. 例

以下にSYSTEM_ROWSを使ってテーブルのサンプルをSELECTする例を示します。 まず、拡張をインストールします。

CREATE EXTENSION tsm_system_rows;

これで、例えば以下のようにSELECTコマンドを使うことができます。

SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);

このコマンドはテーブルmy_tableからサンプルの100行を返します。 (ただし、テーブルに可視の行が100行ないときは、すべての行が返されます。)