网上关于Sap簇表的内容很多,但是我觉得都不太准确,有些还是错误的。所以写下这篇内容供大家参考。
首先需要分清楚表簇和簇表。簇表只是一个结构,没有实际对应的表存在于数据库。表簇在数据库中有对应的实体表。多个簇表的数据存在一个表簇中(如BSEG,BSEC数据都存在RFLBG中)。
以下内容就以BSEG为例。BSEG是一个经常使用的簇表,它在数据库中没有对应的实体表,它的数据来源于表簇RFBLG (这里注意区分簇表和表簇)。

RFBLG是一个表簇,它在数据库中有实体表。
从关键字可以看出,同一个凭证所有行内容存到RFBLG中的一行中。
RFBLG和BSEG格式互相转换,是由sap引擎自动完成的。任何对BSEG的增删改查都会转为对RFBLG的增删改查,这个操作对程序员和数据库是隐藏的。所以这就是查询bseg慢的原因,尤其是查询非索引字段的时候。
下面的测试案例,数据库引擎没有进行字段筛选。


RFBLG和BSAS、BSIS、BSAK、BSIK、BSAD、BSID这6张表,在物理上,它们没有任何关系,它们是不同的实体表。系统生成凭证时,是分别写入RFBLG和其他6张表的。实际中会发现有的数据在其他6张表中都不存在,有的列在其他6张表中也不存在。
浙公网安备 33010602011771号