ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [转] 【SAP Table】

[转] 【SAP Table】

原创 Linux操作系统 作者:alpheren 时间:2009-01-21 10:28:45 0 删除 编辑
  transparent table透明表, pooled table and cluster table簇表. 对于透明表是和DB层的physical table对应的.
  
  对于后俩者,是不对应到DB表的. 比如TBSL就是一个pooled table, 你在DB层找不到此表.
  
  然后多个cluster(pooled) tables组成一个table cluster和table pool . table cluster和table pool是DB层的一个物理表.
  
  为什么要这样呢?我想一个原因可能是速度问题, 我想在存取数据方面,table cluster 可能比table pool要快些,还是那个老问题,就是ABAP dict的数据操作语句是如何转换到DB能认识的语句的, 我study过,但是没什么结果.
  
  记得BSEG吧?当然作为一个cluster table它在DB层不存在, 但是它亲魑猼able cluster :RFBLG的一部分的, 另一个典型的pooled table : 比如posting key OB41设置其实是将数据write to pooled table TBSL, TBSL同样在DB层看不到,但是它是做为table pool ATAB(DB的一个physical 表), RFBLG 和ATAB都有一个字段save data是binaray save的, 所以我想SAP是将经常用到的表(比如bseg)弄到table cluster中, 而配置表ATAB使用频率相对低点,就搞table pool, 但是有理由相信他们速度肯定比存取transparent table要快得多,. 至于底层的技术可能要问真正的ABAP高手了.
  
  我测试过将ATAB delete那个二进制字段,然后在create, 结果posting key不能用了, 比如从RFBLG将BELNR(FI doc no)那条记录删除, OK, FB03再也看不到此doc的line item了, 就是说会计凭证的line item data是binary save在vardata那个field中的.............
  
  pooled table只是才sap dict(se11)才能看到的, 在DB层是没有的, 简单得说,大概是为了加块速度或其他原因吧, 多个pooled table组成一个table pool (就象TBSL-posting keys table),SE16 check ATAB(有个字段是tabname)你会发现有很多pool table组成了它.
  
  另一个case是BSEG和RFBLG,可是RFBLG倒是没有说明你BSEG就在RFBLG中, 但是你可看到BSEG的BELNR(FI doc no).
  
  这样理解吧, 一般ATAB是多是配置表(Pooled table),所以SAP需要告诉你table name
  而RFBLG偏重内容, 比如你在RFBLG delete 一个BELNR, (有个VARDATA恐怕就是将BSEG的内容保存在此), SE16:BSEG就看不到它了, 我想当你check BSEG内容时实际上从DB曾是将RFBLG根据一定规则将内容display出来.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/99072/viewspace-541605/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-01

  • 博文量
    95
  • 访问量
    129774