Direkt zum Inhalt

Warum zeigt eine Tabelle in Amazon Redshift einen hohen Prozentsatz unsortierter Daten an, wenn der Vorteil der Bereinigungssortierung 0 ist?

Lesedauer: 2 Minute
0

Eine Tabelle in Amazon Redshift zeigt einen hohen Prozentsatz unsortierter Daten, hat aber den Wert vacuum_sort_benefit von 0.

Kurzbeschreibung

Amazon Redshift berechnet die unsortierte Spalte in SVV_TABLE_INFO, um den Prozentsatz der Tabellendaten anzuzeigen, die nicht der Sortierschlüsselreihenfolge entsprechen. Wenn der Prozentsatz unsortierter Daten hoch ist, kann eine VACUUM-Sortier-Operation die Abfrageleistung verbessern.

Der Wert vacuum_sort_benefit bestimmt, ob eine Sortier-Operation die Leistung verbessern kann. Wenn der Wert 0 ist, kann Amazon Redshift nicht von einer VACUUM-Operation profitieren, da die Sortierung die Abfragen nicht optimiert.

Ein hoher Prozentsatz unsortierter Daten mit einem vacuum_sort_benefit-Wert von 0 kann aus den folgenden Gründen auftreten:

  • Amazon Redshift stellt auf der Grundlage aktueller Abfragepläne fest, dass das Sortieren nur minimale Vorteile bietet. Abfragen greifen nur auf einen kleinen Teil der Tabelle zu, oder nur wenige Abfragen greifen auf die Tabelle zu.
  • Abfragen filtern oder sortieren nicht nach den Sortierschlüsselspalten. Das Sortieren bietet nur minimale Vorteile, selbst wenn die Tabelle unsortiert erscheint.
  • Für die Tabelle werden keine Abfragen ausgeführt, sodass Amazon Redshift die Sortierreihenfolge nicht optimieren muss.

Weitere Informationen findest du unter Breinigungstabellen.

Lösung

Um festzustellen, ob das Sortieren die Leistung verbessert, überprüfe sowohl die vacuum_sort_benefit-Werte als auch die Werte unsortierter Daten.

Wenn der Wert für vacuum_sort_benefit gleich 0 ist und der Wert unsortierter Daten hoch ist, profitieren die Abfragemuster nicht von der Datensortierung. Die Metrik vacuum_sort_benefit berechnet die potenzielle Verbesserung der Abfrageleistung durch eine Sortierung auf der Grundlage der Workload-Muster.

Führe die folgende Abfrage aus, um die Werte abzurufen:

SELECT "schema", "table", sortkey1, sortkey_num, unsorted, vacuum_sort_benefit
 FROM SVV_TABLE_INFO
WHERE "table" = 'table_name';

Hinweis: Ersetze table_name durch den Namen der Tabelle.

Stelle sicher, dass der Sortierschlüssel mit den häufig abgefragten Filterspalten übereinstimmt. Wenn der Sortierschlüssel für die Abfragemuster nicht relevant ist, wirkt sich ein hoher Prozentsatz unsortierter Daten nicht wesentlich auf die Leistung aus.

Wenn du feststellst, dass das Sortieren die Leistung verbessert, führe den folgenden VACUUM-Sortierbefehl aus, um die Tabelle manuell zu bereinigen:

VACUUM SORT ONLY table_name;

Hinweis: Ersetze table_name durch den Namen der Tabelle.

Ähnliche Informationen

Automatische Tabellensortierung

AWS OFFICIALAktualisiert vor einem Jahr