Si tengo dos consultas¿El número de columnas devueltas afecta la velocidad de una consulta?
SELECT Id, Forename, Surname
FROM Person
WHERE PersonName Like(‘%frank%’)
Y
SELECT *
FROM Person
WHERE PersonName Like(‘%frank%’)
Qué consulta se ejecutará más rápido? ¿La cláusula where/table se une al factor más grande, o la cantidad de columnas devueltas?
Pregunto porque estoy construyendo una serie de objetos que se asignan a las tablas de la base de datos. Normalmente, cada objeto tendrá al menos estos tres métodos:
Select
- Selecciona todo
List
- Selecciona lo suficiente que es se puede utilizar para rellenar una lista desplegable
Search
- Selecciona todo lo que es visible en la resultados, típicamente alrededor de 6 o más columnas.
Si cada consulta devuelve exactamente el mismo conjunto de columnas del mantenimiento y pruebas del código debería ser más trivial. Es poco probable que la base de datos obtenga más de 50,000 filas en cualquier tabla dada, por lo que si la diferencia en el rendimiento es pequeña, tomaré el ahorro en tiempo de desarrollo. Si el rendimiento va a caer por el suelo, entonces trabajaré desde un ángulo diferente.
Por lo tanto, para la facilidad de desarrollo, es SELECT *
sensible, o es ingenuo?
Solo un poco de gramática: * afecta * la velocidad de una consulta. –
http://xkcd.com/326/ – Quassnoi
La política exterior puede afectar algo, pero un número de columnas no puede – Andomar