Optimisation : resume des grandes lignes en pratique ---------------------------------------------------- 1. Pour evaluer une requete, le SGBD doit choisir des algorithmes pour chaque operateur (selection, jointure, etc.). 2. Or les acces au disque sont extremement lents : les algorithmes naifs sont impossibles. 3. Un index sur un fichier permet un acces tres rapide aux enregistrements cherches. L'amelioration peut etre spectaculaire (plusieurs heures devient quelques minutes) quand on ajoute l'index qu'il faut, mais c'est beaucoup plus subtil ensuite. Les algorithmes de jointures utilisent les index quand ils sont disponibles, sinon ils rusent. On peut creer un index explicitement (create index...) ou implicitement (Oracle en cree automatiquement un pour chaque cle primaire). 4. Le plan d'evaluation d'une requete utilise les index et les algorithmes de jointures (il est obtenu par "compilation" de la requete). Oracle permet de consulter ces plans avec l'ordre "explain" (voir feuille de TD). Dans le TD, on va uniquement consulter les plans de certaines requetes, avant et apres creation d'index, pour voir comment Oracle tire parti des concepts developpes au cours. On ne fera pas accelerer une requete, car cela demande une mise en oeuvre assez lourde, car Oracle est assez ruse... Un document parfaitement adapte a notre contexte pour completer cours et TD : le poly de Philippe Rigaux (Google).