Bonjour,
Je me pose pas mal de questions sur les interactions entre les vues (matérialisées ou non) et les index oracle.
Mettons que l'on ait 2 tables : Personne et Activite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Table PERSONNE ID_PERSONNE number(10) NOM Varchar2(50)On souhaite une vue V_ACTIVITE qui intégre le nom en toute lettre du manager :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Table ACTIVITE ID_ACTIVITE number(10) NOM Varchar2(50) ID_MANAGER number(10) (FK sur l'ID_PERSONNE)
Ensuite, je veux chercher toutes les activité dont le manager est 'robert' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE OR REPLACE VIEW V_ACTIVITE (ID, ACTIVITE, MANAGER) AS SELECT ACTIVITE.ID_ACTIVITE, ACTIVITE.NOM, PERSONNE.NOM FROM ACTIVITE, PERSONNE WHERE ID_MANAGER=ID_PERSONNE
Tout ce blabla pour en venir à ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from V_ACTIVITE where MANAGER='robert'
Même question pour une vue matérialisée...Puis-je optimiser les perfs de cette recherche sur une vue en créant un index sur le nom du manager ?
Il n'est apparement pas possible de créer un index sur la vue elle-même mais est-ce que la vue "bénéficierait" d'un index sur le champ NOM de la table PERSONNE ?![]()
Merci d'avance de vos réponses...
Précisions : je suis en Oracle 10g
Partager