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 ??![]()
Partager