F.78. tsm_system_rows — метод извлечения выборки SYSTEM_ROWS
для TABLESAMPLE
#
Модуль tsm_system_rows
предоставляет метод извлечения выборки SYSTEM_ROWS
, который можно использовать в предложении TABLESAMPLE
команды SELECT
.
Этот метод извлечения выборки принимает один целочисленный аргумент, задающий максимальное число выбираемых строк. Результирующая выборка будет содержать в точности столько строк, если только в таблице не оказывается меньше заданного числа строк (в этом случае выдаётся вся таблица).
Как и встроенный метод извлечения выборки SYSTEM
, SYSTEM_ROWS
производит выборку на уровне блоков, так что выборка будет не полностью случайной, а может подвергаться эффектам кластеризации, особенно когда запрашивается небольшое число строк.
SYSTEM_ROWS
не поддерживает предложение REPEATABLE
.
Данный модуль считается «доверенным», то есть его могут устанавливать обычные пользователи, имеющие право CREATE
в текущей базе данных.
F.78.1. Примеры #
Пример получения выборки из таблицы с применением метода SYSTEM_ROWS
. Сначала нужно установить расширение:
CREATE EXTENSION tsm_system_rows;
Затем вы можете использовать его в команде SELECT
, например так:
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
Эта команда выдаст выборку из 100 строк из таблицы my_table
(а если в таблице не окажется 100 видимых строк, будут возвращены все строки).