Reduzieren von Warteschlangen

Unter diesem Thema wird erörtert, wie ein Warehouse-Eigentümer oder -Administrator die Verwendung von Warteschlangen reduzieren kann, um die Performance von Abfragen, die in einem Warehouse ausgeführt werden, zu verbessern.

Wenn zu viele Abfragen gleichzeitig an ein Warehouse gesendet werden, sind die Computeressourcen des Warehouses erschöpft, und nachfolgende Abfragen werden in eine Warteschlange gestellt, bis wieder Ressourcen verfügbar sind. Die Zeit zwischen dem Absenden einer Abfrage und dem Erhalt ihrer Ergebnisse verlängert sich, wenn die Abfrage vor Ausführungsstart in einer Warteschlange warten muss.

Bemerkung

Sie müssen Zugriff auf die freigegebene SNOWFLAKE-Datenbank haben, um die unter diesem Thema beschriebenen Diagnoseabfragen ausführen zu können. Standardmäßig verfügt nur die Rolle ACCOUNTADMIN über die erforderlichen Berechtigungen zum Ausführen der Abfragen.

Ermitteln von Warteschlangen

Snowsight:

So stellen Sie fest, ob in einem bestimmten Warehouse Warteschlangen vorkommen:

  1. Melden Sie sich bei Snowsight an.

  2. Navigieren Sie zu Admin » Warehouses.

  3. Wählen Sie das Warehouse aus.

  4. Verwenden Sie im Diagramm Warehouse Activity die Farbe, die Queued load zugeordnet ist, um Warteschlangen zu identifizieren.

  5. Achten Sie auf Muster in der Höhe der Balken, um festzustellen, ob die Warteschlangen mit Nutzungsspitzen verbunden sind.

SQL:

Abfrage: Warehouses mit Warteschlangen

Diese Abfrage listet die Warehouses auf, die im letzten Monat eine Warteschlange hatten, sortiert nach Datum.

SELECT TO_DATE(start_time) AS date
  ,warehouse_name
  ,SUM(avg_running) AS sum_running
  ,SUM(avg_queued_load) AS sum_queued
FROM snowflake.account_usage.warehouse_load_history
WHERE TO_DATE(start_time) >= DATEADD(month,-1,CURRENT_TIMESTAMP())
GROUP BY 1,2
HAVING SUM(avg_queued_load) > 0;
Copy

Sie können auch Abfragen für die Ansicht QUERY_HISTORY schreiben, um die Zeit zu berechnen, die Abfragen in der Warteschlange verbringen.

Optionen zur Reduzierung von Warteschlangen

Sie haben mehrere Optionen, um die Warteschlangenbildung in einem Warehouse zu beenden:

  • Bei einem normalen Warehouse (d. h. kein Multi-Cluster-Warehouse) sollten Sie das Erstellen zusätzlicher Warehouses in Erwägung ziehen und die Abfragen dann auf diese zusätzlichen Warehouses verteilen. Wenn bestimmte Abfragen Nutzungsspitzen verursachen, sollten Sie sich darauf konzentrieren, diese Abfragen zu verschieben.

  • Ziehen Sie die Umwandlung eines Warehouses in ein Multi-Cluster-Warehouse in Erwägung, damit das Warehouse bei Nachfragespitzen elastisch zusätzliche Computeressourcen bereitstellen kann. Multi-Cluster-Warehouses erfordern die Enterprise Edition von Snowflake.

  • Wenn Sie bereits ein Multi-Cluster-Warehouse verwenden, erhöhen Sie die maximale Anzahl von Clustern.

Hinweise zu Kosten

Eine Beschreibung, wie sich die Verwendung eines Multi-Cluster-Warehouses auf den Credit-Verbrauch auswirkt, finden Sie unter Multi-Cluster-Größe und Credit-Nutzung.

Wenn Sie ein Multi-Cluster-Warehouse im Modus „Automatische Skalierung“ ausführen, können Sie eine Skalierungsrichtlinie verwenden, um die Kosten zu kontrollieren. Die „Economy“-Skalierungsrichtlinie bevorzugt das Konservieren von Credits gegenüber der Elastizität von Clustern, indem aktive Cluster voll ausgelastet bleiben, anstatt zusätzliche Cluster zu starten. Dies kann dazu führen, dass Abfragen in eine Warteschlange verschoben werden und die Bearbeitung länger dauert.

Konfigurieren von Warehouses zur Reduzierung von Warteschlangen

Reguläre Warehouses:

Zum Erstellen neuer Warehouses, an die Abfragen abgegeben werden können, melden Sie sich bei Snowsight an, und wählen Sie Admin » Warehouses aus. Sie können auch den Befehl CREATE WAREHOUSE verwenden.

Multi-Cluster-Warehouses:

So wandeln Sie ein bestehendes Warehouse in ein Multi-Cluster-Warehouse um oder erhöhen die maximale Anzahl von Clustern für ein bestehendes Warehouse:

  1. Melden Sie sich bei Snowsight an.

  2. Navigieren Sie zu Admin » Warehouses.

  3. Suchen Sie das Warehouse, und wählen Sie » Edit aus.

  4. Um das Warehouse in ein Multi-Cluster-Warehouse umzuwandeln, aktivieren Sie die Option Multi-cluster Warehouse. Wenn Ihnen diese Option nicht angezeigt wird, benötigen Sie ein Upgrade auf die Enterprise Edition oder höher.

  5. Verwenden Sie das Dropdown-Menü Max Clusters, um die maximale Anzahl von Clustern einzustellen.