Bonjour,
Actullement, dans mon application, j'utilise des vue qui me renvoi des jeux de donnée à afficher.
Je me demandais si je passais ces vues en procédure stocké, est ce que les requêtes iraient plus vite ?
Par avance merci pour vos retours
Sylo
Version imprimable
Bonjour,
Actullement, dans mon application, j'utilise des vue qui me renvoi des jeux de donnée à afficher.
Je me demandais si je passais ces vues en procédure stocké, est ce que les requêtes iraient plus vite ?
Par avance merci pour vos retours
Sylo
Bonjour,
Non, il n'y aura pas de gain. La requête étant la même derrière, cela ne changera a priori rien quant au plan d'exécution.
Pire, vous allez perdre en souplesse, puisque vous pouvez utiliser votre vue dans des requêtes plus complexes. Chose impossible avec une procédure stockée.
Enfin, dans le cas où votre vue est indexée, alors vous aurez très certainement une perte de performance en utilisant une procédure stockée.
Ok super
Du temps de gagné :)
Pourquoi ?Citation:
Envoyé par dorinf
@++ ;)
J'avais deux arguments, mais réflexion faite, il y en a un qui tombe à l'eau !
Bon, celui qui reste : une vue indexée n'a pas à être recalculée lors de l'interrogation. Du coup, si on a une vue définie comme un SELECT ou une procédure stockée effectuant ce même SELECT, un SELECT * sur la vue sera plus rapide puisque le calcul aura déjà été fait.
Ensuite, mon argument qui ne tient pas la route, c'était la présence de statistiques sur la vue indexée. Mais ces stats ne seront utiles que pour l'élaboration d'un plan de requête dans lesquelles il y a des prédicats de recherche. Sur un SELECT * sur une vue indexée/table qui conduira à un scan complet de la table, cela ne sera pas utile...