WHERE Espece.id = 2
GROUP BY annee
ORDER BY somme DESC
LIMIT 1;
SET v_i = v_i + 1;
END LOOP;
END |
DELIMITER ;
Sur la vue
Code : SQL
DELIMITER |
CREATE PROCEDURE test_perf_vue()
BEGIN
DECLARE v_max INT DEFAULT 1000;
DECLARE v_i INT DEFAULT 0;
DECLARE v_nb INT;
DECLARE v_somme DECIMAL(15,2);
DECLARE v_annee CHAR(4);
boucle: LOOP
IF v_i = v_max THEN LEAVE boucle; END IF;
SELECT SQL_NO_CACHE annee, somme, nb
INTO v_annee, v_somme, v_nb
FROM V_Revenus_annee_espece
WHERE espece_id = 2
ORDER BY somme DESC
LIMIT 1;
SET v_i = v_i + 1;
END LOOP;
END |
DELIMITER ;
Sur la vue matérialisée
Code : SQL
DELIMITER |
CREATE PROCEDURE test_perf_vm()
BEGIN
DECLARE v_max INT DEFAULT 1000;
DECLARE v_i INT DEFAULT 0;
DECLARE v_nb INT;
DECLARE v_somme DECIMAL(15,2);
DECLARE v_annee CHAR(4);
boucle: LOOP
IF v_i = v_max THEN LEAVE boucle; END IF;
SELECT SQL_NO_CACHE annee, somme, nb
INTO v_annee, v_somme, v_nb
FROM VM_Revenus_annee_espece
WHERE espece_id = 2
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
371/414
www.openclassrooms.com
Précédent

- 371/413

Suivant