支持的版本:当前 (16) / 15 / 14 / 13 / 12
开发版本:devel
不受支持的版本:11 / 10 / 9.6 / 9.5

F.47. tsm_system_time — TABLESAMPLESYSTEM_TIME 采样方法 #

tsm_system_time 模块提供表抽样方法 SYSTEM_TIME,该方法可用于 SELECT 命令的 TABLESAMPLE 子句中。

此表抽样方法接受一个浮点参数,该参数是用于读取表的最大毫秒数。这使您可以直接控制查询花费的时间,代价是样本的大小变得难以预测。除非先读取整个表,否则结果样本将包含在指定时间内可以读取的行数。

与内置 SYSTEM 抽样方法类似,SYSTEM_TIME 执行块级抽样,因此样本并非完全随机,但可能会受到聚集效应的影响,尤其是在仅选择少行时。

SYSTEM_TIME 不支持 REPEATABLE 子句。

此模块被视为 受信任,也就是说,它可以由在当前数据库上具有 CREATE 权限的非超级用户安装。

F.47.1. 示例 #

下面是使用 SYSTEM_TIME 选择表样本的示例。首先安装扩展

CREATE EXTENSION tsm_system_time;

然后可以在 SELECT 命令中使用它,例如

SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);

此命令将返回在 1 秒(1000 毫秒)内可以读取到的尽可能大的 my_table 样本。当然,如果可以在 1 秒内读取整个表,则将返回其所有行。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。