Redrock Postgres 搜索 英文
版本: 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

F.45 tsm_system_time — SYSTEM_TIME 用于 TABLESAMPLE 的采样方法 #

F.45.1. 示例

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);

此命令将返回一个 my_table 样本,该样本尽可能大,可以在 1 秒(1000 毫秒)内读取。当然,如果整张表可以在 1 秒内读取,那么它的所有行都将被返回。