2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5

F.45. tsm_system_time — 用于 TABLESAMPLESYSTEM_TIME 采样方法 #

tsm_system_time 模块提供了 SYSTEM_TIME 表采样方法,该方法可以在 SELECT 命令的 TABLESAMPLE 子句中使用。

此表采样方法接受一个单精度浮点数参数,该参数表示读取表时的最大毫秒数。这使您可以直接控制查询执行时间,但代价是样本大小难以预测。结果样本将包含在指定时间内可以读取的行数,除非整个表已先被读取。

与内置的 SYSTEM 采样方法类似,SYSTEM_TIME 执行块级采样,因此样本并不完全随机,可能受到集群影响,尤其是在只选择少量行时。

SYSTEM_TIME 不支持 REPEATABLE 子句。

此模块被认为是 可信的,这意味着非超级用户可以在拥有当前数据库的 CREATE 权限的情况下安装它。

F.45.1. 示例 #

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

CREATE EXTENSION tsm_system_time;

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

SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);

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

提交更正

如果您发现文档中存在任何错误,与您对特定功能的体验不符,或者需要进一步澄清,请使用 此表单 报告文档问题。