Skip to Content
0
Oct 05, 2010 at 08:16 AM

[小讲坛]关于PSA(2)

164 Views

接着上次的,先聊一下PSA table内容的删除。

首先PSA table的内容都是和request关联的(上次有提到怎么看关联)。

而且在BW系统脱离request存在的数据抽取是不现实的。

(这句话怎么理解有些微妙, 比方说ODS的active table, 比方compress过的cube的E-table,request就被压缩掉了..)

所以一般认为要删除数据,就是要去删除request..

而事实上删除PSA的requeset, 并不会物理删除PSA table,而只是在RSTSODSPART里标注一个删除记号。 只有当一个partition上的request都被做了标记,才会做物理删除..

具体内容大家可以参考一下 SAP note 565176..

(以上这些只适用于oracle DB. 如果是其他的DB, PSA tables分区方式不一样,又是另外的故事了..)

然后再介绍几个PSA table的修理和检查工具..

1. RSAR_PSA_PARTITION_CHECK

这个是用来检查PSA table的索引和分区的。Note 1012607有颇为详细的介绍.

2. SAP_PSA_ZEROCORRECT / SAP_PSA_PARTNO_CORRECT

那是针对 PARTNO 被赋值为 0 的现象.

如果数据量很大,请使用 ZSAP_PSA_ZEROCORRECT_PARTS

3. RSAR_PSA_CLEANUP_DIRECTORY /_MS

这个用来检查PSA的目录表和PSA自身之间是否有不一致的数据.

往往是adminitrative table里已经显示被删掉了,但实际物理存储还有的情况。

如果发生这种情况,之前提到的PSA table的删除就无法正常进行,数据就会冗余,无效地占用硬盘空间..

4. RSAR_PSA_CLEANUP_DEFINITION

检查PSA table和DDIC之间是否有不一致.

详细请参考 SAP note 699125.

以上内容,SAP note 1150724都有介绍..

个人觉得需要留意的是BW系统使用的是哪个DB, 不同DB对PSA table的分区方式不同,

于是纠错方法和管理方法也会不同。

祝好,

Vince

Edited by: Vince Lu on Oct 5, 2010 4:16 PM