技术设置与日志 (★★★)

技术设置与日志 (★★★)

#abap #abap-dictionary #abap-tables #abap-performance

概览表

Setting (设置) Purpose (目的)
Data Class (数据类) 物理存储区域选择
Size Category (大小类别) 扩展(Extent)大小
Buffering (缓冲) 读性能优化
Logging (日志) 变更记录

Data Class(数据类)

数据类决定表存储在数据库的哪个物理区域(Oracle 中为 Tablespace)。

Data Class Description Example (示例)
APPL0 主数据(很少修改) 地址文件
APPL1 事务数据(频繁修改) 库存数据
APPL2 组织数据(Customizing) 国家代码
APPL3 系统数据 程序源码
USER/USER1 客户自定义类 客户开发
💡正确选择数据类
正确选择数据类可确保表存储在正确的物理区域,避免碎片化问题。

Size Category(大小类别)

Category Description
0 ~0 到 4,300 条记录
1 ~4,300 到 34,000 条记录
2 ~34,000 到 150,000 条记录
3 ~150,000 到 700,000 条记录
4 ~700,000 条以上
  • 初始扩展(Initial Extent)大小对所有类别相同
  • 额外扩展的大小由类别决定
  • 正确选择可避免:过多小扩展 或 浪费空间的大扩展

Logging(日志)

记录表条目的修改(插入/更新/删除)。

两个条件缺一不可:

1
2
3
4
5
6
日志生效条件:
1. 技术设置中勾选 Logging ✓
2. Profile 参数 rec/client 设置:
- rec/client = ALL → 记录所有客户端
- rec/client = 000[...] → 记录指定客户端
- rec/client = OFF → 不记录
⚠️日志性能影响
日志会造成系统瓶颈:
  • 每次修改产生额外的写操作
  • 可能导致锁竞争(即使访问不同的应用表)
  • 查看日志:事务 SCU3

数据库碎片化

1
频繁插入/删除 → 数据碎片化 → 性能下降
解决方案 适用场景
删除并重建索引 索引碎片化(表仍可用)
转换表 (Conversion) 表碎片化(表不可用!)
📌转换注意事项
  • 转换期间表不可读写
  • 大表转换可能持续数分钟到数小时
  • 应在低负载时段执行