Warum gibt es eine Art task-Ausführung zu planen
Wenn ich führen Sie die folgende Abfrage mit Ausführungsplan.Ich konnte sehen, dass 'Art' ist die meisten costlist Aufgabe.Aber ich bin nicht mit jedem sort-option in meiner Abfrage.Warum ist es passiert?Es ist ein nested-loop-join-task vorhanden ist, bevor Sie wählen.Auch bitte lassen Sie mich wissen, über die merge-join,hash-join und nested-loop-join.
select
Ename from dbo.Employee e
where
Salary>(
select AVG(Salary) from dbo.Employee where
DeptId=e.DeptId
group by DeptId)
- Nicht Adresse Ihre Sortierung Frage, aber einen schönen überblick über diese Allgemeine Form plan ist hier
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der SQL-Abfrage tatsächlich Sortieren von Daten in Gruppen auf die Spalte ( Ename) Sortieren kann ein performance-Engpass, aber Sie brauchen, um herauszufinden .Wenn die Sortierung ist wirklich verursacht ein performance-Problem, dann können Sie es verschieben, um index-vorgeschlagen von Aaaroon Bertrand .
Die reaon für verschachtelte join SQLserver tatsächlich ausgeführt 2 Abfrage wieder zurück zu Ihrem Ergebnis .
Ist die Avg(Gehalt ), geschrieben in der sub-Abfrage und eine weitere ist die äußere Abfrage die Auswahl Ename aus der Tabelle Employee, die getan mit "Clustered index Scan".Diese 2 Abfragen werden dann kombiniert, um zurückzukehren das gewünschte Ergebnis . Es ist im Grunde vergleicht jede Zeile aus der sub-query für jede Zeile der äußeren Abfrage, welches das Prädikat .
Merge-join ist nur dann möglich, wenn Sie den index auf der beitretenden Spalten .Merge-joins sind einige Male sehr schnell, da Sie bereits sortiert .
Für die in-depth-Erklärung gehen Sie durch den folgenden link
Verschachtelte join
Hash Join
Merge-Join
Es hat zu Sortieren, um festzustellen, welche Zeilen eine niedrigere Gehalt pro TerritoryID - so die Art ist, weil diese Aufteilung /Gruppierung.
Können Sie loswerden der Art, die den Betrieb mit einem index wie:
Aber Sie haben, um zu bestimmen, ob die Gewinne, die für diese Abfrage in Zusammenhang, wie oft es ausgeführt wird, rechtfertigt der zusätzliche index - die möglicherweise Auswirkungen auf andere Teile Ihres workload. Sie zahlen für die Sortierung/Gruppierung irgendwann.
Aber auch nur, weil die Kosten innerhalb Ihrer Abfrage hoch ist, bedeutet es nicht, dass das ein problem ist. Ist diese Abfrage so langsam? Sogar ein Formel-1-Rennen hat eine "langsame" Auto endet auf dem letzten Platz.