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_tablesamples。当然,如果可以在 1 秒内读取整个表,则将返回其所有行。