
# Sample Scan
#### 算子说明
Sample Scan是一种扫描表的方式，它可以在查询过程中随机地从表中抽取一部分数据进行查询，而不是扫描整个表。Sample Scan配合TABLESAMPLE关键字使用，使用方式为\[ TABLESAMPLE sampling_method ( argument \[, ...\] ) \[ REPEATABLE ( seed ) \] \]。这种技术通常用于大型表或者需要随机抽样的查询场景，可以提高查询效率。
#### 典型场景
当查询时使用tablesample语法，sampling_method使用system或bernoulli 。
#### 示例
示例：采样查询
```
--数据准备。
gaussdb=# DROP TABLE IF EXISTS t1;
gaussdb=# CREATE TABLE t1 (c1 number, c2 number, c3 number); 
CREATE TABLE 
gaussdb=# INSERT INTO t1 VALUES(generate_series(1,100), 2, 3); 
INSERT 0 100
--执行结果。
gaussdb=# EXPLAIN SELECT c1 FROM t1 tablesample system(10); 
                         QUERY PLAN
-------------------------------------------------------------
 Streaming (type: GATHER)  (cost=0.06..4.11 rows=2 width=32)
   Node/s: All datanodes
   ->  Sample Scan on t1  (cost=0.00..4.02 rows=2 width=32)
         Sampling: system (10::double precision)
(4 rows)
--删除。
gaussdb=# DROP TABLE t1;
```
上述示例中，Sample Scan算子输出信息如下所示。
| 信息名称        | 含义                                    |
|:---|:---|
| Sample Scan | 算子的名称。                                |
| Sampling    | 算子采样的方式，示例中采用system 作为采样方法，采样的比例为10%。 |
   
