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 秒内读取完毕,则会返回所有行。
如果您在文档中看到任何不正确、与您使用该功能时的实际体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。