Einzelheiten zur datenbankinternen Optimierung

Durch datenbankinterne Optimierung kann das Kopieren von IDs aus der Datenbank in den Unica Campaign-Server vermieden werden, um sie, wann immer möglich, zu verarbeiten. Mit dieser Option kann die Leistung des Ablaufdiagramms verbessert werden.

Mit der datenbankinternen Optimierung wird Folgendes festgelegt:

  • Ob Operationen auf dem Datenbankserver oder dem lokalen Unica Campaign-Server ausgeführt werden.
  • wo Ergebnisse von Operationen gespeichert werden.
Wenn die datenbankinterne Optimierung aktiviert ist, bewirkt dies Folgendes:
  • Verarbeitungsaufgaben wie das Sortieren, Verknüpfen und Zusammenführen von Daten werden, wenn es möglich ist, auf dem Datenbankserver vorgenommen.
  • Ausgabezellen von Prozessen werden in temporären Tabellen auf dem Datenbankserver gespeichert.

Die datenbankinterne Optimierung hat Auswirkungen auf die CPU-Belegung:

  • Wenn die datenbankinterne Optimierung aktiviert ist, ist die CPU-Belegung auf dem Datenbankserver höher.
  • Wenn die datenbankinterne Optimierung nicht aktiv ist, wird mehr CPU auf dem Unica Campaign-Server belegt.

Sie können die datenbankinterne Optimierung global anwenden und die globale Einstellung einzelner Ablaufdiagramme überschreiben. Als bewährtes Verfahren gilt, die globale Konfigurationseigenschaft (Datenbankinterne Optimierung verwenden) zu inaktivieren und die Option auf Ablaufdiagrammebene festzulegen (Erweiterte Einstellungen > Admin > Datenbankinterne Optimierung während Ablaufdiagrammausführung verwenden ).

Wichtig: Die datenbankinterne Verarbeitung kann nicht ausgeführt werden, wenn Sie Schwellenwerte für die Größe der Ausgabezelle festlegen oder wenn temporäre Tabellen für einen Prozess deaktiviert sind.
Einschränkungen für die datenbankinterne Optimierung
  • Datenbankinterne Optimierung wird nicht für alle Datenbanken unterstützt.
  • Abhängig von der erforderlichen Logik werden einige Funktionen weiterhin auf dem Unica Campaign-Server ausgeführt, auch wenn die datenbankinterne Verarbeitung aktiviert ist. Beispiele:
    • Die Abfrage verwendet Tabellen aus unterschiedlichen Datenquellen.

      Wenn z. B. ein Prozess "Auswählen" unterschiedliche Datenquellen abfragt, speichert Unica Campaign automatisch die ID-Listen dieser Fälle auf dem Anwendungsserver.

    • Die Abfrage enthält Nicht-SQL-Makros oder abgeleitete Felder.

      Um zum Beispiel ein abgeleitetes Feld zu berechnen, wertet Unica Campaign die abgeleitete Feldformel aus, um zu prüfen, ob ein Teil der Berechnung mit SQL ausgeführt werden kann. Wenn einfache SQL-Befehle verwendet werden können, erfolgt die Berechnung datenbankintern. Wenn nicht, werden temporäre Tabellen auf dem Unica Campaign-Server erstellt, um die Berechnungen zu verarbeiten und die Ergebnisse von Prozess zu Prozess innerhalb eines Ablaufdiagramms zu speichern.

Verarbeitung von direktem SQL in Makros

Die Verarbeitung von benutzerdefinierten Makros mit direkten SQL-Befehlen können datenbankintern ausgeführt werden. Dabei gelten folgende Richtlinien:

  • Alle benutzerdefinierten direkten SQL-Makros müssen mit select beginnen und genau ein Vorkommen von from im übrigen Text aufweisen.
  • Bei Datenbanken, die nur das Einfügen der Syntax in <TempTable> unterstützen, müssen Sie mindestens eine Basistabelle derselben Datenquelle und derselben Zielgruppenebene des benutzerdefinierten direkten SQL-Makros zugeordnet haben. Wenn die vom benutzerdefinierten direkten SQL-Makro ausgewählten Felder zu groß für die Felder der temporären Tabelle sind, wird ein Laufzeitfehler angezeigt.
  • Wenn Sie eine direkte SQL-Abfrage in einem Prozess "Auswählen" verwenden, der über eine Eingabezelle verfügt, müssen Sie das Token <TempTable>verwenden, um die korrekte Liste der Zielgruppen-IDs zu erhalten. Verwenden Sie außerdem das Token <OutputTempTable>, damit Zielgruppen-IDs nicht von der Datenbank zurück zum Unica Campaign-Server abgerufen werden.
  • Wenn Sie bei der datenbankinternen Optimierung direktes SQL verwenden, müssen Sie die Direkt-SQL-Befehle mit der temporären Tabelle aus dem vorherigen Prozess verknüpfen. Andernfalls werden die Ergebnisse nicht von den Ergebnissen aus dem vorherigen Prozess verdrängt.