
Envoyé par
punkoff
La question ne se pose même pas.
D'un point de vue réseau, accès disque, accès mémoire, bref ressources utilisées, qu'est-ce qui est le mieux :
- ramener les données utiles + plein de données inutile
- ramener les données utiles
Ca me fait penser, lors de mon dernier projet un developpeur avait ramener côté applicatif une table entière pour faire ces agrégations avec du code Java ...
Je pense (mais je peux me tromper) que la demande était plutôt du genre "Est-ce qu'il vaut mieux avoir :"
SELECT colonnes FROM vue_globale WHERE conditions
que
SELECT colonnes FROM requete -- avec la requete qui comprend le code de la vue + les conditions supplémentaires
. Si c'était bien la question, alors la réponse est que le SGBD va gérer les deux cas de la même façon.
Une différence est quand même que quand on écrit la requête directement, on peut mettre en amont des conditions dans les sous-requêtes. En théorie si on ne le fait pas mais qu'appliquer le filtre en amont est intéressant, le SGBD le fait ; en pratique il ne le fait pas toujours (notamment si les stats ne sont pas bien à jour).
Partager