Altova MapForce 2024 Professional Edition

Um die Effizienz zu verbessern und Hardware- und Netzwerk-Ressourcen weniger zu beanspruchen, sollten Sie vermeiden, dass dieselbe Datenbank im selben Mapping mehrmals unnötig aufgerufen wird. Natürlich kann es immer wieder vorkommen, dass eine Datenbank aufgrund der Natur des jeweiligen Mappings mehrmals aufgerufen werden muss, beachten Sie jedoch die folgenden allgemeinen Richtlinien:

 

Wenn Sie nur einen Datenbankaufruf benötigen, sollten Sie die Datenbankkomponente nach Möglichkeit nicht in einen Parent-Kontext platzieren, der einen wiederholten Aufruf der Datenbank erforderlich machen würde. Dies könnte z.B. der Fall sein, wenn Sie eine Datenbankkomponente innerhalb einer benutzerdefinierten Funktion platzieren, die als Input eine Sequenz von Werten erhält und daher für jedes Datenelement in der Sequenz aufgerufen wird, siehe auch Benutzerdefinierte Funktionen weiter unten. Normalerweise sind Variablen hilfreich, um Daten im selben Kontext zu sammeln, bevor Sie diese an die Zielkomponente übergeben.

Wenn Sie Werte aus einer Datenbank aggregieren müssen (z.B. um die Anzahl der Datensätze mit Hilfe der Funktion count zu zählen), wird empfohlen, die Ausgabe der Aggregate-Funktion mit einer Variablen zu verbinden, wobei compute-when=once. Dadurch werden wiederholte Aufrufe der Datenbank vermieden. Ein Beispiel dazu finden Sie unter Beispiel: Zählen von Datenbanktabellenzeilen.

Versuchen Sie alle Datenbankdaten in einem einzigen Aufruf zu extrahieren (z.B. mit einer SQL-SELECT-Anweisung oder einer gespeicherten Prozedur), anstatt dieselbe Datenbankkomponente mehrmals zum Mapping hinzuzufügen.

Wenn Sie Daten aus mehreren Tabellen oder Ansichten aus derselben Datenbank extrahieren müssen, ist es ratsam, entweder eine Join-Komponente (im SQL-Modus) oder eine SQL-SELECT-Anweisung zu verwenden. Zweitere eignet sich besser, wenn Sie es vorziehen, die SQL SELECT-Anweisung selbst zu schreiben. Wenn Sie Datenbankdaten mit Nicht-Datenbankdaten oder Daten aus verschiedenen Datenbanken miteinander verbinden müssen, verwenden Sie Nicht-SQL-Joins. Um die Ausführung von Nicht-SQL-Joins in datenintensiven Mappings zu optimieren, führen Sie die Mappings mit der MapForce Server Advanced Edition aus.

Wenn Sie Daten aus einer Datenbank filtern müssen, ist es effizienter anstelle eines Standardfilters eine SQL-WHERE-Komponente zu verwenden, da eine SQL-WHERE-Komponente in der Grammatik der entsprechenden Datenbank speziell für die Arbeit mit Datenbanken optimiert ist.

© 2018-2024 Altova GmbH