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