L'objectif de cet exercice et de procéder à l'optimisation de votre data warehouse, en vous appuyant sur les questions que vous avez posées en phase d'analyse.
Activer l'analyse de plan d'exécution dans votre data warehouse.
Écrivez un script permettant d'analyser toutes les tables du data warehouse.
CREATE TABLE PLAN_TABLE ...
SET AUTOTRACE ON
ANALYZE TABLE f_dw_ventes COMPUTE STATISTICS;
ANALYZE TABLE f_dw_date COMPUTE STATISTICS;
...
Étudiez le plan d'exécution de la première requête que vous avez écrite en phase d'exploitation :
SELECT d.jds, COUNT(*) AS q
FROM f_dw_ventes v, f_dw_date d
WHERE v.dat=d.dat
GROUP BY d.jds
ORDER BY q desc;
Indexez la clé étrangère dat
de la table des faits f_dw_ventes
.
Étudiez les différences d'exécution.
Indexez toutes les clés étrangères du data warehouse en vérifiant que les gains sont bien ceux attendus.
Afin de visualiser la façon dont l'optimiseur de requête utilise les index, partitionnement, ... exécutez des requêtes de sélection pertinentes avant et après implémentation d'une optimisation. Par exemple :
select * from t where a=1;
-- Visualisation du plan d'exécution
create index idx_ventes_produit on t_ventes(fk_produit);
select * from t where a=1;
-- Visualisation du plan d'exécution et observation des changements
Proposez d'autres index (B-Tree et Bitmap) pertinents pour votre data warehouse.
Étudier l'opportunité d'optimisations complémentaires de type partitionnement horizontal ou vues matérialisées.