tsm_system_rows
モジュールはSYSTEM_ROWS
というテーブルサンプリングメソッドを提供します。
これはSELECTコマンドのTABLESAMPLE
句で利用できます。
このテーブルサンプリングメソッドは読み込む最大行数を指定する整数の引数を1つ取ります。 結果のサンプルにはいつでもそれと正確に同じだけの行数が含まれます。 ただしテーブルにそれだけの行数がないときは、テーブル全体が選択されることになります。
組み込みのSYSTEM
サンプリングメソッドと同様、SYSTEM_ROWS
はブロックレベルのサンプリングを行うため、サンプルは完全にはランダムではなく、特にごく少数の行が要求されたときはクラスタリングの影響を受けます。
SYSTEM_ROWS
はREPEATABLE
句をサポートしません。
以下にSYSTEM_ROWS
を使ってテーブルのサンプルをSELECTする例を示します。
まず、拡張をインストールします。
CREATE EXTENSION tsm_system_rows;
これで、例えば以下のようにSELECT
コマンドを使うことができます。
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
このコマンドはテーブルmy_table
からサンプルの100行を返します。
(ただし、テーブルに可視の行が100行ないときは、すべての行が返されます。)