
# Seq Scan
#### 算子说明
Seq Scan算子是所有扫描算子中具有普适性的一种，这个算子本质上的原理为对表按某个方向（前向/后向）进行顺序扫描，然后返回符合筛选条件的所有行。
#### 典型场景
- 表无索引，需要对表进行扫描操作。
- 表有索引，但需要对表大部分数据进行扫描操作。
 
#### 示例
**示例1：**表无索引，需要对表进行扫描操作。
```
--数据准备。 
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 * FROM t1 WHERE c1 = 2; 
                          QUERY PLAN
--------------------------------------------------------------
 Streaming (type: GATHER)  (cost=0.06..13.26 rows=1 width=96)
   Node/s: datanode1
   ->  Seq Scan on t1  (cost=0.00..13.16 rows=1 width=96)
         Filter: (c1 = 2::numeric)
(4 rows)
--删除表。
gaussdb=# DROP TABLE t1;
```
上述示例中，Seq Scan算子输出信息如[表1]所示。
 表1Seq Scan算子输出信息 
| 信息名称     | 含义                                                      |
|:---|:---|
| Seq Scan | 算子的名称。                                                  |
| Filter   | 该算子的过滤谓词，示例中的过滤条件为c1列的值等于2。在查询执行时，满足这些条件的行会被包含在最终的结果集中。 |
   
**示例2：**表有索引，但需要对表大部分数据进行扫描操作。
```
--数据准备。 
gaussdb=# DROP TABLE IF EXISTS t1;
gaussdb=# CREATE TABLE t1(c1 number, c2 number, c3 number); 
CREATE TABLE 
gaussdb=# CREATE INDEX idx_c1 on t1(c1); 
CREATE INDEX 
gaussdb=# INSERT INTO t1 VALUES(generate_series(1, 100000), 2, 3); 
INSERT 0 100000
--收集统计信息。
gaussdb=# ANALYZE t1;
--执行结果。 
gaussdb=# EXPLAIN SELECT * FROM t1 WHERE c1 <= 80000; 
                             QUERY PLAN
--------------------------------------------------------------------
 Streaming (type: GATHER)  (cost=4.00..4698.38 rows=80136 width=16)
   Node/s: All datanodes
   ->  Seq Scan on t1  (cost=0.00..942.00 rows=80136 width=16)
         Filter: (c1 <= 80000::numeric)
(4 rows)
--删除表。
gaussdb=# DROP TABLE t1;
```
上述示例中，Seq Scan算子输出信息如[表2]所示。
 表2Seq Scan算子输出信息 
| 信息名称     | 含义                                                            |
|:---|:---|
| Seq Scan | 算子的名称。                                                        |
| Filter   | 该算子的过滤谓词，示例中的过滤条件为c1列的值小于等于80000。在查询执行时，满足这些条件的行会被包含在最终的结果集中。 |
   
