Begrenzen der gleichzeitig ausgeführten Abfragen

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

Abfragen, die gleichzeitig in einem Warehouse ausgeführt werden, müssen sich die Computeressourcen des Warehouses teilen, was bedeutet, dass jeder Abfrage weniger Ressourcen zugewiesen werden können. Sie können den Parameter MAX_CONCURRENCY_LEVEL verwenden, um die Anzahl der gleichzeitig in einem Warehouse ausgeführten Abfragen zu begrenzen. Da weniger Abfragen um die Ressourcen des Warehouses konkurrieren, können einer Abfrage potenziell mehr Ressourcen zugewiesen werden.

Das Herabsetzen des Parallelitätsgrads kann die Performance einzelner Abfragen verbessern, insbesondere großer, komplexer Abfragen oder Abfragen mit mehreren Anweisungen, aber diese Anpassungen sollten gründlich getestet werden, um sicherzustellen, dass sie die gewünschten Effekte haben.

Beachten Sie, dass eine Senkung des Werts von MAX_CONCURRENCY_LEVEL eines Warehouses dazu führen kann, dass mehr Abfragen in eine Warteschlange gestellt werden, was sich auf die Performance dieser Abfragen auswirkt. Andere Strategien wie die Verwendung eines dedizierten Warehouses oder des Query Acceleration Service können die Leistung einer großen oder komplexen Abfrage steigern, ohne den Rest des Workloads zu beeinträchtigen.

Bemerkung

Durch Anpassen des Parameters STATEMENT_QUEUED_TIMEOUT_IN_SECONDS können Abfragen abgebrochen werden, anstatt sie für längere Zeit in der Warteschlange zu belassen.

Senken des Werts für MAX_CONCURRENCY_LEVEL

Der Standardwert für den maximalen Parallelitätsgrad ist 8. Zum Senken des Werts verwenden Sie den Befehl ALTER WAREHOUSE, um eine niedrigere Zahl anzugeben. Beispiel:

ALTER WAREHOUSE my_wh SET MAX_CONCURRENCY_LEVEL = 4;
Copy