Tengo una tabla de usuario donde hay un nombre de usuario y columnas de aplicación. Nombre de usuario puede repetir, pero la combinación de nombre de usuario + aplicación es única, pero no tienen la restricción única salida en la tabla (para el rendimiento)Efecto de rendimiento del uso de TOP 1 en una consulta SELECT
Pregunta: ¿habrá alguna diferencia (en cuanto al rendimiento) entre:
SELECT * FROM User where UserName='myuser' AND Application='myapp'
Y -
SELECT TOP 1 * FROM User where UserName='myuser' AND Application='myapp'
Como combinación de nombre de usuario + aplicación es única, tanto las consultas volverá siempre hay más de un registro, por lo que TOP 1 no afecta el resultado. Siempre pensé que agregar TOP 1 realmente aceleraría las cosas ya que el servidor sql dejaría de buscar y encontró una coincidencia, pero recientemente leí en un artículo que usar TOP reducirá la velocidad de las cosas y se recomienda evitar, aunque no lo han hecho. explicado por qué.
¿Algún comentario?
¡Gracias! Andrey
Gracias por la edición, Joel - por alguna razón no pude hacer las consultas como líneas de código, las seleccionaría y haría clic en el ícono de "código" y no pasaría nada. – Andrey
Andrey, haga clic en el ícono antes de ingresar el código. El truco es que cualquier línea que comience con cuatro espacios se interpreta como código. Simplemente selecciono mi código en SSMS y lo sangro. Eso me da un formato perfecto. (Tengo SSMS configurado para usar espacios en lugar de caracteres de pestañas). –