On this page
F.42. tsm_system_time
tsm_system_time
模块提供表采样方法SYSTEM_TIME
,该方法可在SELECT命令的TABLESAMPLE
子句中使用。
此表采样方法接受单个浮点参数,该参数是读取表所花费的最大毫秒数。这使您可以直接控制查询所花费的时间,而代价是 samples 大小变得难以预测。结果 samples 将包含在指定时间内可以读取的尽可能多的行,除非首先读取了整个表。
像内置的SYSTEM
采样方法一样,SYSTEM_TIME
执行块级采样,因此采样不是完全随机的,但是可能会受到聚类的影响,尤其是在仅选择少量行的情况下。
SYSTEM_TIME
不支持REPEATABLE
子句。
F.42.1. Examples
这是使用SYSTEM_TIME
选择表 samples 的示例。首先安装扩展:
CREATE EXTENSION tsm_system_time;
然后,您可以在SELECT
命令中使用它,例如:
SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);
此命令将返回 1 秒钟(1000 毫秒)内读取的my_table
samples。当然,如果可以在 1 秒内读取整个表,则将返回其所有行。