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.
Automatisches Umschreiben von Abfragen
Amazon Redshift kann automatisch SQL-Abfragen neu schreiben, die nicht explizit auf bestehende materialisierte Ansichten verweisen, die zur Leistungsverbesserung verwendet werden. Die direkte Abfrage einer materialisierten Ansicht reduziert die Verarbeitungszeit der Abfrage, aber die Abfrageanweisung muss geändert werden. Wenn Sie materialisierte Ansichten verwenden, um Abfragen zu beschleunigen, müssen Sie sich überlegen, wie materialisierte Ansichten systematisch und automatisch zur Beantwortung von Abfragen verwendet werden können. Sie können transparentes Umschreiben verwenden, um materialisierte Ansichten auf die gleiche Weise wie einen Index hinzuzufügen oder zu löschen, ohne dass sich dies auf bestehende SQL-Anweisungen auswirkt. Amazon Redshift verwendet nur up-to-date materialisierte Ansichten, wenn Abfragen automatisch neu geschrieben werden.
So funktioniert das Umschreiben von Abfragen
Erwägen Sie die folgende SQL-Abfrage. Die Abfrage verknüpft zwei Tabellen: Kunde (mehr als 10 Millionen Zeilen) und Bestellung (mehr als 10 Milliarden Zeilen):
SELECT c.cust_id, c.first_name, sum(o.amount) as total_amount FROM orders o JOIN customer c ON c.cust_id = o.customer_id GROUP BY c.cust_id, c.first_name HAVING sum(o.amount) > 500;
Diese Abfrage verknüpft zwei große Tabellen und wendet eine Summenaggregation auf die o.amount-Spalte an und filtert dann die Ergebnisse so, dass nur die Kunden angezeigt werden, die mehr als 500 USD bestellt haben. Diese Abfrage könnte eine Menge Ressourcen verbrauchen.
Betrachten Sie dazu die materialisierte Ansicht mv_total_orders vom Abschnitt Erstellen von materialisierten Ansichten dieses Leitfadens. Nachdem diese Ansicht erstellt wurde, schreibt Amazon Redshift die vorherige Abfrage automatisch wie folgt um:
SELECT cust_id, first_name, total_amount FROM mv_total_orders WHERE total_amount > 500;
Diese neue Abfrage wird viel schneller ausgeführt, da sie eine materialisierte Ansicht verwendet, anstatt zwei große Tabellen zu verbinden.
Das Umschreiben von Abfragen hat aus den folgenden Gründen zu einer breiteren Akzeptanz materialisierter Ansichten geführt:
Materialisierte Ansichten unterstützen das transparente Umschreiben von Abfragen. Beim Umschreiben der Abfrage wird eine in Form von Tabellen ausgedrückte SQL-Anweisung in eine Anweisung umgewandelt, die auf eine oder mehrere materialisierte Ansichten zugreift. Diese Transformation ist für den Endbenutzer transparent und erfordert kein Eingreifen und keinen Verweis auf die materialisierte Ansicht in der SQL-Anweisung.
Materialisierte Ansichten vereinfachen die Anwendung von zwischengespeicherten allgemeinen Ergebnismengen und unterstützen abfrageübergreifende Optimierungen wie das Precomputing.
In Data Warehouses und Datenintegrationsszenarien können materialisierte Ansichten fremde Tabellenergebnisse materialisieren, um die Unterschiede zwischen mehreren Datenquellen zu verbergen, lokale Replikate zu implementieren oder Lese-/Schreibzugriffe durchzuführen.
Das Feature zum Umschreiben von Abfragen in Kombination mit der automatischen Erstellung materialisierter Ansichten beschleunigt die Autonomie der Datenbank.