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.