¿Cuál es la mejor manera (con respecto al rendimiento) para establecer un valor en variable?
Por
SET
comando:DECLARE @VarString nvarchar(max); SET @VarString = 'john doe'; SELECT @VarString;
Por
SELECT
comando:DECLARE @VarString nvarchar(max); SELECT @VarString = 'john doe'; SELECT @VarString;
sql-server
sql-server-2008
query-performance
Gadonski
fuente
fuente
SELECT
es más rápido al asignar valores a múltiples variables a la vez . De lo contrario, la diferencia de rendimiento es insignificante.SET
es más rápido, luego a mitad de camino agrega: "Curiosamente, si subes el número de carreras para decir, 10,SET
comienza a quedarse atrás".Respuestas:
No elija uno u otro estrictamente por su rendimiento.
Elija según lo que se adapte a sus necesidades de estilo y desarrollo, como se recomienda en la conclusión de esta excelente comparación entre
SELECT
ySET
(énfasis y formato menor agregado):fuente
Creo que el consenso es que hay una diferencia de rendimiento insignificante entre los dos (con
SET
ser más rápido). Pero si eres como yo, lo usaríaSET
donde sea apropiado para fines de legibilidad. El próximo tipo que mantendrá tu código te lo agradecerá ;-)fuente
Siempre uso SET a menos que esté completando múltiples variables del conjunto de resultados de 1 consulta. De esa manera, al usar SELECT solo consultamos la tabla una vez.
fuente