F.58. tsm_system_time — метод выборки SYSTEM_TIME для TABLESAMPLE#
F.58. tsm_system_time —
метод выборки SYSTEM_TIME
для TABLESAMPLE
#
Модуль tsm_system_time
предоставляет метод выборки таблицы SYSTEM_TIME
, который может быть использован в предложении TABLESAMPLE
команды SELECT
.
Этот метод выборки таблицы принимает один аргумент с плавающей точкой, который представляет собой максимальное количество миллисекунд, затрачиваемых на чтение таблицы. Это позволяет вам непосредственно контролировать время выполнения запроса, но при этом становится сложно предсказать размер выборки. Результирующая выборка будет содержать столько строк, сколько может быть прочитано за указанное время, если только весьма таблица не будет прочитана сначала.
Как и встроенный метод выборки SYSTEM
, SYSTEM_TIME
выполняет выборку на уровне блока, поэтому выборка не является полностью случайной, но может подвергаться кластеризации, особенно если выбрано только небольшое количество строк.
SYSTEM_TIME
не поддерживает
фразу REPEATABLE
.
Этот модуль считается "доверенным", то есть его можно установить
недоступным пользователям, у которых есть привилегия CREATE
в текущей базе данных.
F.58.1. Примеры #
Вот пример выборки образца таблицы с SYSTEM_TIME
. Сначала установите расширение:
CREATE EXTENSION tsm_system_time;
Затем вы можете использовать его в команде SELECT
, например:
SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);
Эта команда вернет как можно больше примеров таблицы my_table
, которые можно прочитать за 1 секунду (1000 миллисекунд). Конечно, если вся таблица может быть прочитана за менее чем 1 секунду, будут возвращены все ее строки.