PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 15.10 » Annexes » Modules supplémentaires fournis » tsm_system_rows

F.46. tsm_system_rows

Le module tsm_system_rows fournit la méthode d'échantillonage de table SYSTEM_ROWS, qui peut être utilisé dans la clause TABLESAMPLE d'une commande SELECT.

Cette méthode d'échantillonnage accepte un argument de type entier correspondant au nombre maximum de lignes à lire. L'échantillon résultant contiendra toujours ce nombre exact de lignes, sauf si la table ne contient pas suffisamment de lignes, auquel cas la table entière est sélectionnée.

Comme la méthode interne SYSTEM, SYSTEM_ROWS réalise un échantillonnage au niveau des blocs de table, si bien que l'échantillonnage n'est pas complètement aléatoire mais peut être sensible à un effet de regroupement (clustering), surtout si un petit nombre de lignes est demandé.

SYSTEM_ROWS ne supporte pas la clause REPEATABLE.

Ce module est considéré comme « trusted », ce qui signifie qu'il peut être installé par des utilisateurs simples (sans attribut SUPERUSER) et qui ont l'attribut CREATE sur la base de données courante.

F.46.1. Exemples

Voici un exemple de sélection d'un échantillon d'une table avec SYSTEM_ROWS. Il faut tout d'abord installer l'extension :

CREATE EXTENSION tsm_system_rows;

Puis vous pouvez l'utiliser dans une commande SELECT, par exemple :

SELECT * FROM ma_table TABLESAMPLE SYSTEM_ROWS(100);

Cette commande renverra un échantillon de 100 lignes depuis la table ma_table (sauf si la table contient moins de 100 lignes visibles, auquel cas toutes les lignes sont renvoyées).