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 видимых строк, будут возвращены все строки).