TABLESAMPLE
的 SYSTEM_ROWS
抽样方法 #tsm_system_rows
模块提供表采样方法 SYSTEM_ROWS
,它可用于 SELECT
命令的 TABLESAMPLE
子句中。
此表采样方法接受单个整型参数,表示要读取的最大行数。结果样本将始终包含该数量的确切行,除非表中包含的行数不够,在这种情况下,将选择整个表。
与内置 SYSTEM
采样方法一样,SYSTEM_ROWS
执行块级采样,因此样本并非完全随机,而是可能受到聚类影响,特别是仅请求少数行时。
SYSTEM_ROWS
不支持 REPEATABLE
子句。
此模块被认为是 “受信任的”,即,它可由在当前数据库上具有 CREATE
权限的非超级用户安装。
下面是以 SYSTEM_ROWS
选择表样本的示例。首先安装扩展
CREATE EXTENSION tsm_system_rows;
然后,您可以在 SELECT
命令中使用它,例如
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
此命令将从表 my_table
中返回 100 行的样本(除非表没有 100 行可见行,在这种情况下,将返回其所有行)。