Bonjour j'aurais besoin d'un petit coup de pouce ^^
je suis sur une base oracle 9i
j'executé des requete bien tordue 16 jointures à peu pres

biensur les perf pour ce genre de requete sont mauvaises
en regardant bien le code je me suis apperçu que la requete etait en 2 bloques symétrique sur le principe une table enorme (80 millions de lignes) joint a des tables plus petites ( de 200 à 4000 lignes)

l'une des deux gros table (celle de 80 millions de lignes ) porte sur au moins 15 ans de prod. hors seul l'année en cours m'est util. j'ai du souhaité faire une VUE materialisée sur l'année avec les memes index ( normalement les deux ont la meme structure ; j'ai fais un create as select...puis ajoute des index)

ma VUE ne fait plus que 200 milles lignes !! jusque là tout va bien


sauf que ma requete ramme 3 fois plus en utilisant la vue ....

avec la version normal g un nested loop et tout le reste des jointure passe en hash join

avec la version utilisant la vue j'ai 5 ou 6 nested loop qui apparaissent..

en Bref : il va plus vite à parcourir 11 milions lignes que 200 milles!!

quelqu'un aurait une idée ??