Teradata - Leistungsoptimierung
In diesem Kapitel wird das Verfahren zur Leistungsoptimierung in Teradata erläutert.
Erklären
Der erste Schritt bei der Leistungsoptimierung ist die Verwendung von EXPLAIN für Ihre Abfrage. Der EXPLAIN-Plan enthält Details dazu, wie das Optimierungsprogramm Ihre Abfrage ausführt. Überprüfen Sie im Erklärungsplan die Schlüsselwörter wie Konfidenzniveau, verwendete Verknüpfungsstrategie, Spooldateigröße, Umverteilung usw.
Statistiken sammeln
Das Optimierungsprogramm verwendet die Datendemografie, um eine effektive Ausführungsstrategie zu entwickeln. Der Befehl COLLECT STATISTICS wird verwendet, um die Datendemografie der Tabelle zu erfassen. Stellen Sie sicher, dass die in den Spalten gesammelten Statistiken aktuell sind.
Sammeln Sie Statistiken zu den Spalten, die in der WHERE-Klausel verwendet werden, und zu den Spalten, die in der Verknüpfungsbedingung verwendet werden.
Sammeln Sie Statistiken zu den Spalten des eindeutigen Primärindex.
Sammeln Sie Statistiken zu nicht eindeutigen Sekundärindexspalten. Das Optimierungsprogramm entscheidet, ob es NUSI oder Full Table Scan verwenden kann.
Sammeln Sie Statistiken zum Join-Index, obwohl die Statistiken zur Basistabelle erfasst werden.
Sammeln Sie Statistiken zu den Partitionierungsspalten.
Datentypen
Stellen Sie sicher, dass die richtigen Datentypen verwendet werden. Dadurch wird die Verwendung von übermäßigem Speicher als erforderlich vermieden.
Umwandlung
Stellen Sie sicher, dass die Datentypen der in der Verknüpfungsbedingung verwendeten Spalten kompatibel sind, um explizite Datenkonvertierungen zu vermeiden.
Sortieren
Entfernen Sie unnötige ORDER BY-Klauseln, sofern dies nicht erforderlich ist.
Spool Space Problem
Ein Spool-Speicherplatzfehler wird generiert, wenn die Abfrage das AMP-Spool-Speicherplatzlimit für diesen Benutzer überschreitet. Überprüfen Sie den EXPLAIN-Plan und identifizieren Sie den Schritt, der mehr Spool-Speicherplatz beansprucht. Diese Zwischenabfragen können aufgeteilt und separat abgelegt werden, um temporäre Tabellen zu erstellen.
Primärindex
Stellen Sie sicher, dass der Primärindex für die Tabelle korrekt definiert ist. Die primäre Indexspalte sollte die Daten gleichmäßig verteilen und häufig für den Zugriff auf die Daten verwendet werden.
SET-Tabelle
Wenn Sie eine SET-Tabelle definieren, prüft der Optimierer, ob der Datensatz für jeden eingefügten Datensatz doppelt vorhanden ist. Um die Bedingung für die doppelte Prüfung zu entfernen, können Sie einen eindeutigen Sekundärindex für die Tabelle definieren.
UPDATE auf großem Tisch
Das Aktualisieren der großen Tabelle ist zeitaufwändig. Anstatt die Tabelle zu aktualisieren, können Sie die Datensätze löschen und die Datensätze mit geänderten Zeilen einfügen.
Temporäre Tabellen löschen
Löschen Sie die temporären Tabellen (Staging-Tabellen) und flüchtigen Stoffe, wenn sie nicht mehr benötigt werden. Dadurch wird permanenter Speicherplatz und Spool-Speicherplatz freigegeben.
MULTISET-Tabelle
Wenn Sie sicher sind, dass die Eingabedatensätze keine doppelten Datensätze enthalten, können Sie die Zieltabelle als MULTISET-Tabelle definieren, um die von der SET-Tabelle verwendete doppelte Zeilenprüfung zu vermeiden.