Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen und Datenänderung » Abfragen » Fortgeschrittene Aufgaben: Parallelität während der Abfrageausführung

 

Parallelität in Abfragen

Eine Abfrage wird mit größerer Wahrscheinlichkeit Parallelität verwenden, wenn die Abfrage wesentlich mehr Zeilen verarbeitet als zurückgegeben werden. In diesem Fall umfasst die Anzahl der verarbeiteten Zeilen die Größe aller gescannten Zeilen plus die Größe aller Zwischenergebnisse. Sie umfasst nur Zeilen, die gescannt wurden, weil ein Index zum Überspringen der meisten Teile der Tabelle verwendet wird. Ein idealer Fall ist ein GROUP BY für eine Einzelzeile über eine große Tabelle, wobei viele Zeilen gescannt werden und nur eine zurückgegeben wird. Abfragen für mehrere Gruppen kommen ebenfalls in Frage, falls die Gruppen groß sind. Auch Prädikate oder Join-Bedingungen, die viele Zeilen löschen, eignen sich für die parallele Verarbeitung.

In der folgenden Liste werden die Situationen aufgeführt, in denen eine Abfrage die Vorteile der Parallelität nicht nutzen kann, weder bei der Optimierung noch während der Ausführungszeit:

  • Der Computer verfügt nicht über mehrere Prozessoren.

  • Der Servercomputer ist nicht für die Verwendung mehrerer Prozessoren lizenziert. Sie können dies anhand der Servereigenschaft "NumLogicalProcessorsUsed" prüfen. Hyperthread-Prozessoren werden für abfrageinterne Parallelität jedoch nicht gezählt. Wenn es sich also um einen Hyperthread-Computer handelt, müssen Sie den Wert von "NumLogicalProcessorsUsed" durch 2 teilen.

  • Die Option "max_query_tasks" ist auf 1 gesetzt.

  • Die Option "priority" ist auf "background" gesetzt.

  • Die Anweisung, die die Abfrage enthält, ist keine SELECT-Anweisung.

  • Der Wert von "ActiveReq" war kürzlich größer oder gleich dem Wert von "NumLogicalProcessorsUsed" (teilen Sie die Anzahl der Prozessoren durch 2, wenn es sich um einen Hyperthread-Computer handelt).

  • Es gibt nicht genug verfügbare Aufgaben.

 Siehe auch