Les index et les vues oracle
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:
1 2 3 4
|
Table PERSONNE
ID_PERSONNE number(10)
NOM Varchar2(50) |
Code:
1 2 3 4 5
|
Table ACTIVITE
ID_ACTIVITE number(10)
NOM Varchar2(50)
ID_MANAGER number(10) (FK sur l'ID_PERSONNE) |
On souhaite une vue V_ACTIVITE qui intégre le nom en toute lettre du manager :
Code:
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 |
Ensuite, je veux chercher toutes les activité dont le manager est 'robert' :
Code:
select * from V_ACTIVITE where MANAGER='robert'
Tout ce blabla pour en venir à ma question :
Citation:
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 ?
Même question pour une vue matérialisée...:)
Merci d'avance de vos réponses...
Précisions : je suis en Oracle 10g