Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VIEW -> pré-optimisation?

2 réponses
Avatar
Mihamina (R12y) Rakotomandimby
Bonjour,

Je viens de découvrir les "vues", en SQL.

Soit une vue que je défini sur une requete tres complexe ou il y a des
jointures tordues etc etc (apres tout c'est le but des vues).

Je me demandais une chose: Si je définis une "vue", c'est que je compte m'en
servir. Est-ce que le système de base données va préparer un peu le travail
apres que j'ai défini une "vue", ou bien il va attendre que je sollicite la
vue pour effectuer la jointure?

J'utilise MySQL et PGSQL.

2 réponses

Avatar
Eric Rossé
Le Fri, 15 Jun 2007 20:29:43 +0200, Mihamina (R12y) Rakotomandimby écrivait:

Je me demandais une chose: Si je définis une "vue", c'est que je compte m'en
servir. Est-ce que le système de base données va préparer un peu le travail
apres que j'ai défini une "vue", ou bien il va attendre que je sollicite la
vue pour effectuer la jointure?



La requête qui se cache derrière une vue ne sera exécutée qu'au moment où
cette vue sera sollicitée. Par contre, cette requête sera en principe
"préparée". Le but d'une vue n'est pas d'avoir des données pré-extraites,
mais de simplifier l'écriture des requêtes et/ou de limiter les droits
d'accès.
Avatar
Jogo
Sur fr.comp.applications.sgbd, Mihamina (R12y) Rakotomandimby disait :

Est-ce que le système de base données va préparer un peu le travail
apres que j'ai défini une "vue", ou bien il va attendre que je
sollicite la vue pour effectuer la jointure?

J'utilise MySQL et PGSQL.



Avec PgSQL, aucun travail n'est effectué par le SGBDR avant la requête.
Les vue sont implémentées en utilisant les RULEs, cad que les requêtes
utilisant une vue sont réécrites pour utiliser les tables d'origines
avant d'être passées au planificateur. Une description précise de ce
fonctionnement se trouve dans la doc au §.34.2 chez moi.

--
There are only two kinds of tequila. Good and better.