登录
F.46. tsm_system_rows —TABLESAMPLE
的SYSTEM_ROWS
采样方法#
tsm_system_rows
模块提供表抽样方法SYSTEM_ROWS
,该方法可用于TABLESAMPLE
子句中的SELECT
命令。
此表抽样方法接受一个整数参数,该参数是要读取的最大行数。结果样本将始终包含恰好那么多行,除非表中不包含足够的行,在这种情况下,将选择整个表。
与内置SYSTEM
抽样方法类似,SYSTEM_ROWS
执行块级抽样,因此样本不是完全随机的,但可能会受到聚类效应的影响,尤其是在仅请求少量行的情况下。
SYSTEM_ROWS
不支持REPEATABLE
子句。
此模块被认为是“可信”
,也就是说,它可以由具有当前数据库CREATE
权限的非超级用户安装。
F.46.1. 示例#
下面是使用SYSTEM_ROWS
选择表样本的示例。首先安装扩展
CREATE EXTENSION tsm_system_rows;
然后可以在SELECT
命令中使用它,例如
SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);
此命令将从表my_table
中返回 100 行的样本(除非表中没有 100 行可见行,在这种情况下,将返回其所有行)。