
Bei der Verarbeitung von Datenbankdaten kann SAP Data Services die Leistungsfähigkeit der Datenbank-Engine nutzen. Dies kann aus Performancegründen sehr wichtig sein. Der angewandte Mechanismus heißt SQL-Pushdown: Ein Teil der Transformation wird in Form generierter SQL-Anweisungen in die Datenbank "verlagert". Datenbanken sind oft in der Lage, Daten viel schneller zu verarbeiten. Durch die interne Verarbeitung innerhalb der Datenbankschicht werden zeitaufwendige Datenübertragungen zwischen Datenbankserverspeicher und Data-Services-Speicher vermieden oder erheblich reduziert und umgekehrt.
Data Services untersucht die Datenbank und ihre Umgebung, wenn ermittelt wird, welche Vorgänge an die Datenbank übergeben werden sollen. Es gibt zwei Arten von Push-down-Operationen:
- Vollständig: Stellt alle Transformationsoperationen an die Datenbankserver und die Datenströme direkt von der Quelldatenbank in die Zieldatenbank herunter.
- Teilweise: Stellt die SELECT-Anweisungen auf den Quelldatenbankserver herunter.
Vollständige Pushdown-Operationen
Der Data-Services -Optimierer versucht immer, einen vollständigen Push-Down-Vorgang durchzuführen. Vollständige Push-Down-Vorgänge können direkt von der Quelldatenbank an die Datenbanken und an die Datenströme an die Zieldatenbank übergeben werden.
Data Services sendet beispielsweise SQL INSERT INTO... SELECT-ANWEISUNGEN an die Zieldatenbank senden SELECT, um Daten aus der Quelle abzurufen.
Vollständige Pushdown-Bedingungen
Vorgänge mit vollständigem Pushdown an die Quell- und Zieldatenbank sind nur möglich, wenn die folgenden Bedingungen erfüllt sind:
- Alle Vorgänge zwischen der Quelltabelle und der Zieltabelle können übergeben werden.
- Die Quell- und Zieltabellen stammen aus demselben Datastore oder befinden sich in Datastores, zwischen denen eine Datenbankverknüpfung definiert ist.
Teilweise Push-Down-Operationen
Wenn ein vollständiger Push-Down-Vorgang nicht möglich ist, versucht Data Services, einen Teil-Pushdown mit einer SELECT-ANWEISUNG an die Quelldatenbank weiterzugeben.
SELECT-Anweisungsoperationen, die verlagert werden können
Die Tabelle listet Operationen innerhalb der SELECT-ANWEISUNG auf, die an die Datenbank gepusht werden können:
| Operation | Beschreibung |
|---|---|
| Aggregationen | Wird mit einer GROUP BY-ANWEISUNG verwendet, um ein Dataset zu erzeugen, das kleiner oder gleich der Größe des ursprünglichen Datasets ist. |
| Eindeutige Zeilen | Data Services gibt eindeutige Zeilen nur aus, wenn Sie eindeutige Zeilen verwenden. |
| Filterung | Erstellen Sie ein Datenset, das kleiner oder gleich dem ursprünglichen Datenset ist. |
| Joins | Erstellen Sie ein Dataset, das kleiner oder ähnlich groß ist wie die Originaltabellen. |
| Bestellen | Die Reihenfolge wirkt sich nicht auf die Größe des Datensets aus. Data Services kann Datensätze, die in den Arbeitsspeicher passen, effizient sortieren. Da Data Services kein Paging durchführt, indem Zwischenergebnisse auf die Festplatte geschrieben werden, verwenden Sie das DBMS selbst, um große Datensätze anzuordnen. |
| Projektionen | Es wird ein kleineres Dataset erstellt, da sie nur Spalten zurückgeben, die von einem Datenfluss referenziert werden. |
| Funktionen | Die meisten Data-Services -Funktionen, die Äquivalente in der zugrunde liegenden Datenbank haben, werden entsprechend übersetzt. |
Vorgänge, die nicht verdrängt werden können
Data Services kann einige Transformationsoperationen nicht an die Datenbank senden, z.B.:
- Ausdrücke, die Data-Services -Funktionen ohne Datenbankkorrespondenten enthalten.
- Ladevorgänge, die Trigger enthalten.
- Transformationen, bei denen es sich nicht um die Query-Transformation handelt.
- Joins zwischen Quellen, die sich auf verschiedenen Datenbankservern ohne definierte Datenbankverknüpfungen befinden.
Notiz

