tsm_system_rows

Модуль tsm_system_rows предоставляет метод взятия выборки из таблицы SYSTEM_ROWS, который можно использовать в предложении TABLESAMPLE команды SELECT.

Этот метод взятия выборки из таблицы принимает один целочисленный аргумент, задающий максимальное количество строк для прочтения. Результирующая выборка всегда будет содержать ровно столько строк, если только в таблице не окажется недостаточно строк — в таком случае выбирается вся таблица.

Как и встроенный метод взятия выборки SYSTEM, SYSTEM_ROWS производит взятие выборки на уровне блоков, так что выборка не будет полностью случайной, а может подвергаться эффектам кластеризации, особенно если запрашивается небольшое количество строк.

SYSTEM_ROWS не поддерживает предложение REPEATABLE.

Этот модуль считается «доверенным», то есть его могут устанавливать обычные пользователи с правом CREATE в текущей базе данных.

Примеры

Ниже приведен пример отбора выборки из таблицы с помощью SYSTEM_ROWS. Сначала установим расширение:

CREATE EXTENSION tsm_system_rows;

Затем его можно использовать в команде SELECT, например так:

SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);

Эта команда возвратит выборку из 100 строк из таблицы my_table (а если в таблице не окажется 100 видимых строк, будут возвращены все строки).