Optimieren der Abfrageleistung

Sie können die Snowflake-Abfrageleistung auf folgende Weise optimieren:

  • Suchoptimierungsdienst

  • Abfragebeschleunigung

  • Erstellen von materialisierten Ansichten (gruppiert oder nicht gruppiert)

  • Clustering von Tabellen

Jede dieser Optimierungsmethoden hat unterschiedliche Vorteile, wie die folgende Tabelle zeigt:

Feature

Unterstützte Abfragetypen

Anmerkungen

Suchoptimierungsdienst

Der Suchoptimierungsdienst kann die Performance dieser Suchtypen für die unterstützten Datentypen verbessern.

Query Acceleration Service

Abfragen mit Filtern oder Aggregation. Wenn die Abfrage LIMIT enthält, muss die Abfrage auch ORDER BY enthalten.
Die Filter müssen hochselektiv sein, und die ORDER BY-Klausel muss eine niedrige Kardinalität haben.

Die Abfragebeschleunigung funktioniert gut bei Ad-hoc-Analysen, Abfragen mit unvorhersehbarem Datenvolumen
und Abfragen mit großen Scans und selektiven Filtern.

Abfragebeschleunigung und Suchoptimierung ergänzen sich gegenseitig. Beide können die gleiche Abfrage beschleunigen. Siehe Kompatibilität mit Abfragebeschleunigung.

Materialized views

  • Gleichheitssuche

  • Bereichssuche

  • Sortieroperationen

Sie können materialisierte Ansichten auch verwenden, um verschiedene Gruppierungsschlüssel für dieselbe Quelltabelle oder eine Teilmenge dieser Tabelle zu definieren oder um vereinfachte JSON- oder VARIANT-Daten zu speichern, damit sie nur einmal vereinfacht werden müssen.

Die Performance kann nur für die Teilmenge der Zeilen und Spalten verbessert werden, die in der materialisierten Ansicht enthalten sind.

Clustering der Tabelle

  • Gleichheitssuche

  • Bereichssuche

Eine Tabelle kann jedoch nur auf einem einzigen Schlüssel gruppiert werden, der eine oder mehrere Spalten oder Ausdrücke umfassen kann.

In der folgenden Tabelle wird zeigt, welche dieser Optimierungsverfahren Speicher- oder Computekosten verursachen:

Optimieren

Speicherkosten

Computekosten

Suchoptimierungsdienst

Query Acceleration Service

Materialisierte Ansicht

Clustering der Tabelle

[1]

Kompatibilität mit Abfragebeschleunigung

Suchoptimierung und Abfragebeschleunigung können zusammen genutzt werden, um die Abfrageleistung zu optimieren. Erstens kann die Suchoptimierung die Mikropartitionen entfernen, die für eine Abfrage nicht benötigt werden. Dann kann die Abfragebeschleunigung für in Frage kommende Abfragen einen Teil der verbleibenden Verarbeitung auf freigegebene Computeressourcen verlagern, die vom Dienst bereitgestellt werden.

Die Verarbeitungsleistung von Abfragen, die durch beide Dienste beschleunigt werden, variiert je nach Workload und verfügbaren Ressourcen.