TABLESAMPLE
的 SYSTEM_TIME
抽样方法 #tsm_system_time
模块提供了表抽样方法 SYSTEM_TIME
,该方法可以在 SELECT
命令的 TABLESAMPLE
子句中使用。
此表抽样方法接受一个浮点参数,该参数是读取表所花费的最大毫秒数。 这使您可以直接控制查询所需的时间,但代价是样本的大小变得难以预测。 结果样本将包含在指定时间内可以读取的尽可能多的行,除非已首先读取整个表。
与内置的 SYSTEM
抽样方法类似,SYSTEM_TIME
执行块级抽样,因此样本不是完全随机的,但可能会受到聚类效应的影响,尤其是在仅选择少量行的情况下。
SYSTEM_TIME
不支持 REPEATABLE
子句。
此模块被认为是“受信任”的,也就是说,拥有当前数据库 CREATE
权限的非超级用户可以安装它。
以下是使用 SYSTEM_TIME
选择表样本的示例。 首先安装扩展
CREATE EXTENSION tsm_system_time;
然后您可以在 SELECT
命令中使用它,例如
SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000);
此命令将返回 my_table
的尽可能大的样本,该样本可以在 1 秒(1000 毫秒)内读取。 当然,如果可以在 1 秒内读取整个表,则将返回其所有行。
如果您在文档中看到任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。