Ansicht
Dokumentation

RSDU_PART_GENERIC_INFO_GET - Lesen von Partitionsinformationen (generisch)

RSDU_PART_GENERIC_INFO_GET - Lesen von Partitionsinformationen (generisch)

ABAP Short Reference   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Spezifikation des Bausteins RSDU_PART_GENERIC_INFO_GET:

Dieser Baustein ermittelt die Partitionierungsinformation bzgl. einer partitionierten Tabelle.

Es gibt bereits den Baustein RSDU_PARTITIONS_INFO_GET, der jedoch nur für Datenbanken einsetzbar ist, die analog zu Oracle partitionieren. Unter Verwendung von Oraclehat eine Liste von High Values eine andere Bedeutung als bei anderen Datenbanken. Ein High Value beschreibt bei Oracle genau eine einzige Partition (wobei aber noch der Low Value spezifiziert werden müßte, um den Wertebereich einer Partition genau zu kennen). Ein High Value beschreibt aber z.B. bei SQL Server zwei Partitionen, die durch diesen High Value geteilt werden. Bei anderen Datenbanken ist eine vollständige Angabe von Wertebereichen (Low und High Value) erforderlich. Des Weiteren wird beim Baustein RSDU_PARTITIONS_INFO_GET immer vorausgesetzt, dass der High Value eine Lower Than Bedingung beinhaltet. Auch diese Voraussetzung ist nicht bei allen Datenbanken gegeben.

Daher wurde ein Baustein RSDU_PART_GENERIC_INFO_GETentwickelt, der Beschreibungen existierender Partitionen über halboffene Intervalle mit Low und High Value (RANGE Partitionierung) bzw. Festwerten (LIST Partitionierung) liefert. Bei Range Partitionierung wird spezifiziert, ob ein Low oder High Value noch zur Wertemenge dazu gehört (inclusive) oder nicht (exclusive). Zusätzlich liefert der Funktionsbaustein RSDU_PART_GENERIC_INFO_GETauch physische Information wie z.B. die Anzahl Datensätze je Partition und Speicherplatzverbrauch.

Import:

Tabellename (i_tablnm)
Name der Tabelle, für die die Partitionsinformation ermittelt werden soll

physische Info (i_physinfo)
Soll physische Information in gesonderter Tabelle zurückgegeben werden. Falls man physische Info will, muss man das Kennzeichen auf 'X' setzen, ansonsten auf ' '. Das Flag sollte aus Performancegründen per Default nicht mitgegeben werden.

Export:

Partitionierungsart (e_partype)
Aktuell mögliche Werte aller bekannten Ports: 'RANGE' (MSSQL, ORACLE, DB2/OS390, DB2/AS400), 'MDC' (DB2/UDB), 'LIST' (ORACLE, DB2/AS400)

,,Partitionierungsspalten(e_ts_partkey_info)
,,Hier werden die Spaltennamen zurückgeliefert, über die die Tabelle partitioniert ist (Partitionierungsschlüssel).

Partitionierungsinformation (e_ts_genpart_info)
Hier wird pro Partition jeweils der Partitionsname (partition_name), eine Partitionsnummer (partition_number), eine openSQL Einschränkung (condition) und eine interne Tabelle (t_part_ranges) zurückgeliefert. Der Partitionsname ist der identifizierende Schlüssel der internen Tabelle!

Die Tabelle t_part_ranges (or_blockid, column_name, sign, option, low, high) beschreibt die Grenzen einer Partition. In der Regel gibt es nur einen Partitionierungsschlüssel, d.h. die Tabelle t_part_rangesbesteht aus einem (List Partitionierung) oder aus zwei (Range Partitionierung) Einträgen:

t_part_range
or_blockid column_name sign option low high
0 <partkey> I EQ 5
or_blockid column_name sign option low high
0 <partkey> I GE 5
0 <partkey> I LT 6

Bedingungen mit gleicher or_blockid werden logisch mit einem UND (AND) verknüpft. Blöcke mit unterschiedlicher or_blockid werden geklammert und logisch mit einem ODER (OR) verknüpft. Einschränkungen mit unterschiedlicher or_blockid treten nur bei Range Partitionierung mit mehreren Partitionierungsschlüssel auf. Die Tabelle t_part_rangeserlaubt ausschließlich die Operatoren 'LT', 'LE', 'EQ', 'GT', GE'. Die openSQL Einschränkung von Feld condition wird aus den Einträgen der Tabelle t_part_rangesabgeleitet und kann als dynamische WHERE-Bedingung im ABAP verwendet werden. Auf diese Weise können SQL Zugriffe einfach auf eine oder mehrere Partitionen eingeschränkt werden.

physische Information über die Partitionen (e_ts_physpart_info)
Hier können physische Informationen abgefragt werden. Aus Performance-Gründen wird das jedoch nur gemacht, wenn es explizit angefordert wird (Import Flag i_physinfo) . Die Belegung der nun beschriebenen Felder der Tabelle e_ts_physpart_info haben noch keinen Einfluss auf Programmabläufe im BI. Sie dienen bislang alleine der Information und Analyse. Die Tabelle e_ts_physpart_infoenthält folgende physische Information (sofern auf der entsprechenden DB Plattform sinnvoll und unterstütz):

,,partition_name/number
,,Identifikation der Partition

,,row_count
,,Anzahl der Datensätze, die sich in der Partition befinden

,,size_mb
,,Größe der Partition in MB

,,page_size_kb
,,Größe der Seiten (pages)

,,pages_all
,,Gesamtzahl allokierter Seiten (pages) für die Partition

,,pages_empty
,,Anzahl leerer Seiten (pages) für die Partition

,,distinct_vals
,,Anzahl unterschiedlicher Werte der Partitionierungsschlüssel für die Partition

,,last_stat
,,Datum des letzten Statistic updates auf der Partition


,,

Beispiel

Hinweise

Weiterführende Informationen





Parameter

E_PARTYPE
E_TS_GENPART_INFO
E_TS_PARTKEY_INFO
E_TS_PHYSPART_INFO
I_PHYSINFO
I_TABLNM

Ausnahmen

INHERITED_ERROR
PARTSCHEME_NOT_SUPPORTED
TABLE_NOT_EXISTS
TABLE_NOT_PARTITIONED

Funktionsgruppe

RSDU_PART

ROGBILLS - Synchronize billing plans   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9045 Date: 20240523 Time: 091708     sap01-206 ( 135 ms )