Was sind die Vorteile/Nachteile der Verwendung eines CTE?
Ich bin auf der Suche zur Verbesserung der Leistung von einigen SQL, die derzeit die Allgemeine Tabellenausdrücke sind, die verwendet werden und verwiesen wird mehrere Male in der Schrift. Würde ich Verbesserungen über eine table-variable statt? (Kann keine temporary-Tabelle benutzen, da der code innerhalb von Funktionen).
Siehe Craig Freedman ' s ausführliche Erklärung für die SQL Server - link-text
InformationsquelleAutor Luke Smith | 2008-09-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wirklich haben, um die Leistung zu testen - Es gibt keine ja/Nein-Antwort. Als pro Andy Lebt ' s post oben links, ein allgemeiner Tabellenausdruck ist nur ein Kürzel für eine Abfrage oder Unterabfrage.
Wenn Sie nennen es zweimal oder mehr in der gleichen Funktion ist, erhalten Sie möglicherweise eine bessere Leistung, wenn Sie füllen eine table-variable und dann fügen Sie/wählen Sie aus, dass. Wie jedoch aus Tabelle Variablen nehmen Platz irgendwo, und nicht Indizes/Statistiken (Mit Ausnahme der deklarierte primary key auf die Tabelle, variable) es gibt keine Möglichkeit zu sagen, was schneller geht.
Beide haben Kosten und Einsparungen, und das ist der beste Weg hängt davon ab, die Daten, die Sie ziehen und was Sie tun. Ich habe in deiner situation, und nach dem Test für Geschwindigkeit unter verschiedenen Bedingungen - Einige Funktionen verwendet, CTEs und andere verwendet, die table-Variablen.
InformationsquelleAutor Meff
Wahrscheinlich nicht. CTE ist besonders gut Abfragen die Daten für Baum-Strukturen.
InformationsquelleAutor Joel Coehoorn