Was ist der bessere Weg (in Bezug auf die Leistung), um einen Wert auf variabel zu setzen?
Auf
SET
Befehl:DECLARE @VarString nvarchar(max); SET @VarString = 'john doe'; SELECT @VarString;
Auf
SELECT
Befehl:DECLARE @VarString nvarchar(max); SELECT @VarString = 'john doe'; SELECT @VarString;
sql-server
sql-server-2008
query-performance
Gadonski
quelle
quelle
SELECT
ist schneller, wenn mehreren Variablen gleichzeitig Werte zugewiesen werden . Ansonsten ist der Leistungsunterschied vernachlässigbar.SET
es schneller ist, dann fügt er auf halber Strecke hinzu: "SeltsamerweiseSET
beginnt das hinterherzuhinken , wenn Sie die Anzahl der Läufe auf 10 erhöhen."Antworten:
Wählen Sie das eine oder andere nicht ausschließlich für die Leistung aus.
Wählen Sie basierend auf Ihren Stil- und Entwicklungsanforderungen, wie in der Schlussfolgerung zu diesem hervorragenden Vergleich zwischen
SELECT
undSET
(Hervorhebung und geringfügige Formatierung hinzugefügt) empfohlen wird :quelle
Ich denke, der Konsens ist, dass es einen vernachlässigbaren Leistungsunterschied zwischen den beiden gibt (mit
SET
schneller sein). Aber wenn Sie wie ich sind, würde ichSET
gegebenenfalls aus Gründen der Lesbarkeit verwenden. Der nächste Typ, der Ihren Code pflegt, wird es Ihnen danken ;-)quelle
Ich verwende immer SET, es sei denn, ich fülle mehrere Variablen aus der Ergebnismenge einer Abfrage aus. Auf diese Weise fragen wir mit SELECT die Tabelle nur einmal ab.
quelle