前言 – 这篇文章是的一部分 ABAP初学者 系列。
目录
SAP ABAP 中的表缓冲
在我们开始“SAP ABAP 中的表缓冲”之前。 让我们举一个一般的例子。 你用过 YouTube 吗? 而且,您在观看之前是否曾经缓冲过视频?
如果是,那么您已经有了缓冲的想法。
如果没有,请转到 YouTube 并暂停您的视频,它会加载它(缓冲它)。 因此,在这种情况下,YouTube 视频被加载到您的浏览器/应用程序中,当您播放它时,它不再从 YouTube 服务器加载它,而是直接从您的应用程序服务器的缓冲区播放它。
通过这种方式,您可以节省时间并获得更好的体验。 ABAP 表也使用了缓冲的这一概念,在 SAP ABAP 中称为表缓冲。
定义
SAP ABAP 中的表缓冲是 ABAP 表中的一个概念,用于提高性能(10 到 100 倍)并减少处理(访问)表的时间。
缓冲区是数据库层和应用程序层之间的接口。 应用层与缓冲区通信,缓冲区与数据库层通信,反之亦然。
*注意: 数据库接口确定数据是否在缓冲区中。 如果没有,它会从数据库中获取数据并同步缓冲区。
使用表中的缓冲区
步骤01: 从缓冲权限中选择一个单选按钮。
允许 | 产品描述 |
不允许缓冲 | 这是默认值。 适用于数据变化频繁的事务表 |
允许缓冲但已关闭 | 缓冲器是允许的,但它是关闭的,可以根据客户的要求随时打开 |
缓冲已开启 | 允许缓冲。 在这种情况下,我们需要提供 Buffering 类型。 |
步骤02: 选择缓冲类型:它定义了将加载哪些数据以及何时加载。
缓冲类型 | 产品描述 |
完全缓冲 | 每当访问表的单个记录时,系统就会将所有数据加载到 Buffer 中。 |
通用缓冲 | 当访问具有特定通用键的记录时,该通用键的所有其他记录也会被缓冲。 |
单记录缓冲 | 只有真正访问过的记录才会被缓冲。 |
完全缓冲
当使用完全缓冲时,要么缓冲整个表,要么不缓冲任何记录。 当访问单个记录时,该表的整个数据/记录都会被缓冲。 缓冲是指所有记录都在缓冲表中。
何时使用完全缓冲
- 较大的表像 Master Table 一样很少写入和经常读取,然后我们需要使用 Full Buffering。
- 对于像自定义主要读取的表这样的小表。
通用缓冲
当使用 Generic Buffering 时,所有带有 Generic 键的记录都会被一次性缓冲。
*注意:
- 通用键:仅用于从表中过滤数据的某些键的组合键。
- 通用键是主键的一部分。
- 在 SELECT 语句的 WHERE 条件中应提及所有通用键,否则会绕过缓冲区并从数据库中读取数据。
何时使用通用缓冲
- 当只需要某些通用区域时。
- 对于特定于客户端的表,客户端字段是通用键。
- 对于语言特定表,通用键包括语言键。
单记录缓冲
您访问的所有数据都将被缓冲,除此之外什么都没有。
何时使用单记录缓冲
- 仅访问少量记录的表
如何绕过缓冲区
通过使用 BYPASSING BUFFER,我们可以绕过缓冲区并直接从数据库中读取。
选择 * 从进入表绕过缓冲器。
很好的解释……我真的很感激