Überlappender Sortierungsschlüssel - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überlappender Sortierungsschlüssel

Eine überlappende Sortierung gewichtet alle Spalten oder Teilbereiche von Spalten im Sortierschlüssel gleich. Wenn verschiedene Abfragen verschiedene Spalten als Filter verwenden, können Sie die Leistung dieser Abfragen häufig verbessern, indem Sie einen überlappenden Sortierstil verwenden. Wenn eine Abfrage einschränkende Prädikate für sekundäre Sortierspalten verwendet, wird die Abfrageleistung durch die überlappende Sortierung im Vergleich zur zusammengesetzten Sortierung deutlich verbessert.

Wichtig

Verwenden Sie keinen überlappenden Sortierschlüssel in Spalten mit monoton ansteigenden Attributen, wie Identitätsspalten, Daten oder Zeitstempel.

Die Leistungsverbesserungen, die Sie durch die Implementierung eines überlappenden Sortierschlüssels erzielen, sollten mit den längeren Lade- und Bereinigungszeiten abgewogen werden.

Überlappende Sortierungen sind in Verbindung mit hoch selektiven Abfragen, die nach einem oder mehreren Sortierschlüsselspalten in der WHERE-Klausel filtern, am effektivsten, beispielsweise select c_name from customer where c_region = 'ASIA'. Die Vorteile der überlappenden Sortierung nehmen mit der Zahl der sortierten Spalten zu, die eingeschränkt wurden.

Eine überlappende Sortierung ist für große Tabellen effektiver. Die Sortierung wird auf jedes Slice angewendet. Daher ist eine überlappende Sortierung am effektivsten, wenn eine Tabelle groß genug ist, um mehrere 1-MB-Blöcke pro Slice zu beanspruchen. Hier kann der Abfrageprozessor einen erheblichen Teil der Blöcke mit restriktiven Prädikaten überspringen. Um die Zahl der von einer Tabelle verwendeten Blöcke anzuzeigen, führen Sie eine Abfrage für die Systemansicht STV_BLOCKLIST aus.

Beim Sortieren einer einzelnen Spalte kann eine überlappende Sortierung zu einer besseren Leistung als eine zusammengesetzte Sortierung führen, wenn die Spalten ein langes gemeinsames Präfix haben. Beginnen Sie beispielsweise URLs üblicherweise mit "http://www“. Zusammengesetzte Sortierschlüssel verwenden eine begrenzte Zahl von Zeichen aus dem Präfix, was zu zahlreichen duplizierten Schlüsseln führt. Überlappende Sortierungen verwenden ein internes Kompressionsschema für Zonenzuweisungswerte. Daher können sie Spaltenwerte besser unterscheiden, die ein langes gemeinsames Präfix haben.

Bei der Migration von bereitgestellten Amazon-Redshift-Clustern zu Amazon Redshift Serverless konvertiert Redshift Tabellen mit überlappenden Sortierschlüsseln und DISTSTYLE KEY in zusammengesetzte Sortierschlüssel. Der DISTSTYLE ändert sich nicht. Weitere Informationen zu Verteilungsstilen finden Sie unter Arbeiten mit Datenverteilungsstilen.

VACUUM REINDEX

Während Sie einer sortierten Tabelle Zeilen hinzufügen, die bereits Daten enthält, kann die Leistung mit der Zeit nachlassen. Diese Verschlechterung tritt sowohl für zusammengesetzte als auch für überlappende Sortierungen auf, wirkt sich jedoch auf überlappende Tabellen stärker aus. Eine VACUUM-Operation stellt die Sortierreihenfolge wieder her. Die Operation kann jedoch im Fall von überlappenden Tabellen länger dauern, da die Zusammenführung neuer überlappender Daten bedeuten kann, dass jeder Datenblock geändert werden muss.

Wenn Tabellen zum ersten Mal geladen werden, analysiert Amazon Redshift die Verteilung der Werte in den Sortierschlüsselspalten und verwendet diese Informationen, um eine optimale Überlappung der Sortierschlüsselspalten zu erzielen. Mit zunehmender Größe der Tabelle kann sich die Verteilung der Werte in den Sortierschlüsselspalten verändern oder verzerren, besonders im Fall von Datums- oder Zeitstempelspalten. Wenn die Verzerrung zu groß wird, wirkt sich dies möglicherweise auf die Leistung aus. Um die Sortierschlüssel neu zu indizieren und die Leistung wiederherzustellen, führen Sie den Befehl VACUUM mit dem Schlüsselwort REINDEX aus. Da ein zusätzlicher Analysedurchgang für die Daten notwendig ist, kann VACUUM REINDEX im Fall überlappender Tabellen länger als eine VACUUM-Standardoperation dauern. Um Informationen zu Verzerrungen der Schlüsselverteilung und zum letzten Neuindizierungszeitpunkt anzuzeigen, führen Sie eine Abfrage für die Systemansicht SVV_INTERLEAVED_COLUMNS aus.

Weitere Informationen dazu, wie häufig VACUUM ausgeführt werden sollte und wann VACUUM REINDEX ausgeführt werden sollte, finden Sie unter Entscheiden Sie, ob Sie neu indizieren möchten.