表扫描描述符及扫描方向

简介: 表扫描描述符及扫描方向


1、表扫描函数的参数传递通过TableScanDescData,函数内层将扫描到的记录存储到HeapScanDesc.rs_ctup中,然后将该成员内容传递给slot中。

2、内部处理时会将TableScanDescData转换成HeapScanDesc类型,其第一个成员变量是TableScanDescData类型,方便类型强制转换。

3、HeapScanDesc结构成员:

  TableScanDescData rs_base:描述符中AM独立部分

  BlockNumber rs_nblocks:表中总共有多少数据页

  BlockNumber rs_startblock:从哪一页开始进行扫描

  BlockNumber rs_numblocks:最多扫描多少页,范围扫描中使用

  boolrs_inited;该扫描描述符是否已初始化,第一个记录时初始化,扫描后面的不再初始化,从上一次保存的数据页中取下一个记录

  BlockNumber rs_cblock:当前扫描的文件页页号

  Bufferrs_cbuf:当前扫描的内存页页号

  BufferAccessStrategy rs_strategy:扫描策略,使用哪种内存描述符获取方法:

  参考:

  https://blog.csdn.net/yanzongshuai/article/details/103659270

  https://blog.csdn.net/yanzongshuai/article/details/103795628

  https://blog.csdn.net/yanzongshuai/article/details/103798038

  https://blog.csdn.net/yanzongshuai/article/details/103828829

  https://blog.csdn.net/yanzongshuai/article/details/103839702

  HeapTupleData rs_ctup:扫描到的记录存储到这个位置

  int rs_cindex:扫描的记录索引号

  int rs_ntuples:该页中总共有多少记录

  OffsetNumber rs_vistuples[MaxHeapTuplesPerPage]:page at a time下该页所有可见记录的索引号保存在这个数组中。


关于扫描方向:


ForwardScanDirection:向前

BackwardScanDirection:向后

NoMovementScanDirection:重新获取记录

这里的方向和理解的有点不一样,需注意。

目录
相关文章
|
安全 网络协议 物联网
GOBY扫描篇
GOBY扫描篇
1032 0
GOBY扫描篇
|
消息中间件 安全 网络协议
综合扫描 -- Ladon
综合扫描 -- Ladon
276 0
综合扫描 -- Ladon
|
消息中间件 域名解析 安全
综合扫描 -- K8scan
综合扫描 -- K8scan
201 0
综合扫描 -- K8scan
|
数据库 索引
存在逻辑删除的表字段上建立唯一索引的巧办法 (逻辑删除与唯一索引)
设计数据库唯一索引时,经常会碰到唯一删除的键值,导致很难处理,这里就简单介绍一种巧办法,帮你快速解决该问题
1786 0
存在逻辑删除的表字段上建立唯一索引的巧办法 (逻辑删除与唯一索引)
|
Java Scala
slick对超过22个属性的表进行映射的两种办法
版权声明:本文为博主原创文章,未经博主允许不得转载 slick是scala的一个FRM(Functional Relational Mapper)框架,即函数式的关系数据库编程工具库。使用slick不同于使用java的hibernate或者是mybatis,对其进行迭代开发非常方便,因为其对表的映射基于函数式的编程方式。
1085 0
|
安全 网络协议 数据安全/隐私保护
|
安全 网络协议 网络安全

热门文章

最新文章