Automatisches Umschreiben von Abfragen zur Verwendung materialisierter Ansichten - 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.

Automatisches Umschreiben von Abfragen zur Verwendung materialisierter Ansichten

Sie können das automatische Umschreiben von Abfragen materialisierter Ansichten in Amazon Redshift verwenden, damit Amazon Redshift Abfragen für die Verwendung von materialisierten Ansichten umschreibt. Dadurch werden Abfrage-Workloads sogar für solche Abfragen beschleunigt, die nicht explizit auf eine materialisierte Ansicht verweisen. Wenn Amazon Redshift Abfragen umschreibt, verwendet es ausschließlich aktuelle materialisierte Ansichten.

Nutzungshinweise

Um festzustellen, ob das automatische Umschreiben von Abfragen für eine Abfrage verwendet wird, können Sie den Abfrageplan oder STL_EXPLAIN überprüfen. Im Folgenden sehen Sie eine SELECT-Anweisung und die EXPLAIN-Ausgabe des ursprünglichen Abfrageplans.

SELECT catgroup, SUM(qtysold) AS sold FROM category c, event e, sales s WHERE c.catid = e.catid AND e.eventid = s.eventid GROUP BY 1; EXPLAIN XN HashAggregate (cost=920021.24..920021.24 rows=1 width=35) -> XN Hash Join DS_BCAST_INNER (cost=440004.53..920021.22 rows=4 width=35) Hash Cond: ("outer".eventid = "inner".eventid) -> XN Seq Scan on sales s (cost=0.00..7.40 rows=740 width=6) -> XN Hash (cost=440004.52..440004.52 rows=1 width=37) -> XN Hash Join DS_BCAST_INNER (cost=0.01..440004.52 rows=1 width=37) Hash Cond: ("outer".catid = "inner".catid) -> XN Seq Scan on event e (cost=0.00..2.00 rows=200 width=6) -> XN Hash (cost=0.01..0.01 rows=1 width=35) -> XN Seq Scan on category c (cost=0.00..0.01 rows=1 width=35)

Im Folgenden sehen Sie die EXPLAIN-Ausgabe nach erfolgreichem automatischen Umschreiben. Diese Ausgabe enthält einen Scan der materialisierten Ansicht im Abfrageplan, der Teile des ursprünglichen Abfrageplans ersetzt.

* EXPLAIN XN HashAggregate (cost=11.85..12.35 rows=200 width=41) -> XN Seq Scan on mv_tbl__tickets_mv__0 derived_table1 (cost=0.00..7.90 rows=790 width=41)

Nur up-to-date (neue) materialisierte Ansichten werden für das automatische Umschreiben von Abfragen berücksichtigt, unabhängig von der Aktualisierungsstrategie, z. B. auto, geplant oder manuell. Daher gibt die ursprüngliche Abfrage Ergebnisse zurück up-to-date . Wenn in Abfragen explizit auf eine materialisierte Ansicht verwiesen wird, greift Amazon Redshift auf aktuell gespeicherte Daten in der materialisierten Ansicht zu. Diese Daten spiegeln möglicherweise nicht die aktuellen Änderungen aus den Basistabellen der materialisierten Ansicht wider.

Sie können das automatische Umschreiben von Abfragen für materialisierte Ansichten verwenden, die mit der Cluster-Version 1.0.20949 oder höher erstellt wurden.

Sie können das automatische Umschreiben von Abfragen auf Sitzungsebene stoppen, indem Sie „SET mv_enable_aqmv_for_session to FALSE“ verwenden.

Einschränkungen

Bei der Verwendung des automatischen Umschreibens von Abfragen materialisierter Ansichten gelten folgende Einschränkungen:

  • Das automatische Umschreiben von Abfragen funktioniert mit materialisierten Ansichten, die keine der folgenden Elemente enthalten und nicht auf diese verweisen:

    • Unterabfragen

    • Left, Right oder Full Outer Joins

    • Set-Operationen

    • Alle Aggregatfunktionen, außer SUM, COUNT, MIN. MAX und AVG. (Dies sind die einzigen Aggregationsfunktionen, die mit dem automatischen Umschreiben von Abfragen arbeiten.)

    • Alle Aggregationsfunktionen mit DISTINCT

    • Alle Fensterfunktionen

    • SELECT-DISTINCT- oder HAVING-Klauseln

    • Externe Tabellen

    • Andere materialisierte Ansichten

  • Beim automatischen Umschreiben von Abfragen werden SELECT-Abfragen umgeschrieben, die auf benutzerdefinierte Amazon-Redshift-Tabellen verweisen. Folgende Abfragen werden in Amazon Redshift nicht umgeschrieben:

    • CREATE-TABLE-AS-Anweisungen

    • SELECT INTO-Anweisungen

    • Abfragen zu Katalogen oder Systemtabellen

    • Abfragen mit Outer Joins oder einer SELECT-DISTINCT-Klausel

  • Wenn eine Abfrage nicht automatisch umgeschrieben wird, überprüfen Sie, ob Sie über die SELECT-Berechtigung für die angegebene materialisierte Ansicht verfügen und ob die Option mv_enable_aqmv_for_session den Wert TRUE hat.

    Sie können auch feststellen, ob Ihre materialisierten Ansichten für das automatische Umschreiben von Abfragen berechtigt sind, indem Sie STV_MV_INFO überprüfen. Weitere Informationen finden Sie unter STV_MV_INFO.