Перейти к основному содержимому

tsm_system_time. Метод извлечения выборки SYSTEM_TIME

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: ext.

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

Метод извлечения выборки SYSTEM_TIME в качестве единственного аргумента использует число с плавающей точкой, которое задает время на чтение таблицы (в миллисекундах). Это позволяет напрямую изменять время выполнения запроса, однако размер конечной выборки оказывается слабо предсказуем: в ней будет содержаться столько строк, сколько удастся прочитать за указанное время (если таблица не будет прочитана целиком).

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

Доработка

Доработка не проводилась.

Ограничения

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

Установка

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

CREATE EXTENSION tsm_system_time SCHEMA ext;

Настройка

Настройка не требуется.

Использование модуля

Выборка из test_pre, которую выдаст следующая команда, напрямую зависит от количества строк, прочитанных за 100 миллисекунд. Если за это время будет прочитана вся таблица, в выборку попадут все ее строки.

SELECT * FROM test_pre TABLESAMPLE SYSTEM_TIME(100);

Ссылки на документацию разработчика

Исходная документация PosgreSQL по модулю tsm_system_time: https://www.postgresql.org/docs/15/tsm-system-time.html.