网上关于Sap簇表的内容很多,但是我觉得都不太准确,有些还是错误的。所以写下这篇内容供大家参考。 

  首先需要分清楚表簇和簇表。簇表只是一个结构,没有实际对应的表存在于数据库。表簇在数据库中有对应的实体表。多个簇表的数据存在一个表簇中(如BSEG,BSEC数据都存在RFLBG中)。 

  以下内容就以BSEG为例。BSEG是一个经常使用的簇表,它在数据库中没有对应的实体表,它的数据来源于表簇RFBLG (这里注意区分簇表和表簇)。

   

  

 

 

   

  RFBLG是一个表簇,它在数据库中有实体表。

   

  从关键字可以看出,同一个凭证所有行内容存到RFBLG中的一行中。 

 

  RFBLG和BSEG格式互相转换,是由sap引擎自动完成的。任何对BSEG的增删改查都会转为对RFBLG的增删改查,这个操作对程序员和数据库是隐藏的。所以这就是查询bseg慢的原因,尤其是查询非索引字段的时候。

       下面的测试案例,数据库引擎没有进行字段筛选。

  

  

   

  RFBLG和BSASBSISBSAKBSIKBSADBSID6张表,在物理上,它们没有任何关系,它们是不同的实体表。系统生成凭证时,是分别写入RFBLG和其他6张表的。实际中会发现有的数据在其他6张表中都不存在,有的列在其他6张表中也不存在。   

posted on 2019-04-19 11:48  北上  阅读(5962)  评论(2)    收藏  举报