Tipps für die Maximierung des SQL-Pushbacks

Letzte Aktualisierung: 11. Feb. 2025
SQL-Optimierung (SPSS Modeler)

Um die bestmögliche Leistungssteigerung aus der SQL-Optimierung zu erzielen, sollten Sie die in diesem Abschnitt aufgeführten Punkte beachten.

Ablaufreihenfolge. Die SQL-Generierung kann angehalten werden, wenn die Funktion des Knotens keine semantische Entsprechung in SQL hat, da die Data Mining-Funktionalität von SPSS Modelerumfangreicher ist als die traditionellen Datenverarbeitungsoperationen, die von Standard-SQL unterstützt werden. In diesem Fall wird die SQL-Generierung auch für alle nachgeordneten Knoten unterdrückt. Daher können Sie die Leistung eventuell signifikant steigern, wenn Sie die Knoten neu anordnen, um die Operationen, die SQL stoppen, so weit unten im Stream platzieren wie möglich. Das SQL-Optimierungsprogramm kann eine bestimmte Menge an Neuordnung automatisch ausführen, aber weitere Verbesserungen können möglich sein. Ein guter Kandidat dafür ist der Auswahlknoten, der häufig nach weiter vorne im Stream verschoben werden kann. Weitere Informationen finden Sie unter Knoten, die SQL-Pushback unterstützen .

CLEM-Ausdrücke. Wenn ein Ablauf nicht neu geordnet werden kann, können Sie eventuell Knotenoptionen oder CLEM-Ausdrücke ändern oder anderweitig die Art und Weise, wie die Operation ausgeführt wird, umgestalten, sodass die SQL-Generierung nicht mehr behindert wird. Ableitungsknoten, Auswahlknoten und ähnliche Knoten können allgemein in SQL gerendert werden, vorausgesetzt, dass es für alle CLEM-Ausdrucksoperatoren SQL-Entsprechungen gibt. Die meisten Operatoren können gerendert werden. Es gibt jedoch eine Reihe von Operationen, die die SQL-Generierung blockieren (insbesondere die Sequenzfunktionen ["@-Funktionen"]). Manchmal wird die Generierung angehalten, da die generierte Abfrage so komplex wurde, sodass die Datenbank nicht mehr damit umgehen kann. Weitere Informationen finden Sie unter CLEM-Ausdrücke und Operatoren, die SQL-Pushback unterstützen .

Mehrere Eingabeknoten. Wenn ein Ablauf mehrere Datenimportknoten aufweist, wird die SQL-Generierung auf jeden Importzweig unabhängig angewendet. Wenn die Generierung in einem Zweig angehalten wird, kann sie in einem anderen fortgesetzt werden. Wenn zwei Zweige zusammengeführt werden (und beide Zweige bis zur Zusammenführung in SQL ausgedrückt werden können), kann die Zusammenführung als solche oft durch eine Datenbankverknüpfung ersetzt werden und die Generierung kann nachgeordnet fortgesetzt werden.

Scoring-Modelle. Für einige Modelle wird datenbankinternes Scoring durch Rendern des generierten Modells in SQL unterstützt. Einige Modelle generieren jedoch extrem komplexe SQL-Ausdrücke, die nicht immer effektiv in der Datenbank evaluiert werden. Aus diesem Grund muss die SQL-Generierung separat für die einzelnen generierten Modellnuggets aktiviert werden. Wenn sich herausstellt, dass ein Modellnugget die SQL-Generierung behindert, öffnen Sie die Einstellungen des Modellnuggets und wählen Sie SQL für dieses Modell generieren aus (bei einigen Modellen stehen Ihnen möglicherweise weitere Optionen zur Steuerung der SQL-Generierung zur Verfügung. Führen Sie Tests aus, um sicherzustellen, dass die Option für Ihre Anwendung nützlich ist. Weitere Informationen finden Sie unter Knoten, die SQL-Pushback unterstützen .

Wenn Sie Modellierungsknoten testen, um festzustellen, ob die SQL-Generierung für Modelle effektiv funktioniert, wird empfohlen, zunächst alle Datenflüsse aus SPSS Modelerzu speichern. Zu beachten ist, dass einige Datenbanksysteme möglicherweise blockieren, wenn sie versuchen, das (möglicherweise komplexe) generierte SQL zu verarbeiten.

Datenbankcaching. Wenn Sie einen Knotencache zum Speichern von Daten an kritischen Punkten im Ablauf verwenden (beispielsweise nach einem Zusammenführungs- oder Aggregatknoten), müssen Sie sicherstellen, dass neben der SQL-Optimierung auch Datenbankcaching aktiviert ist. Dadurch können die Daten in den meisten Fällen eine temporäre Tabelle in der Datenbank (statt des Dateisystems) als Cache fungieren.

Herstellerspezifisches SQL. Der größte Teil des generierten SQL entspricht den Standards (SQL-92), es werden jedoch, wo angemessen, auch einige nicht standardmäßige, herstellerspezifische Funktionen genutzt. Der Grad der SQL-Optimierung kann, je nach Datenbankquelle, schwanken.