Administration Oracle: optimisation

L'objectif de ce TP consiste à explorer les possibilités d'optimisation de requêtes d'oracle.

Remarque: Vous conservez les mêmes IPs des machines virtuelles fournies lors de la première séance. De plus, vous devez avoir fini le premier TP car une nouvelle base de données contenant un échantillon de données astronomiques va être rattaché à votre VM. Pour cela, il vous faudra vous rapprocher de votre chargé de TP qui effectuera la bascule.

Informations techniques:

  • Base de donnée: ORA12C
  • login / passwd sur la base ORA12C: petasky/petasky
  • :!: modifier /etc/hosts pour prendre en compte votre ip et votre nom de machine (si vous ne l'avez pas fait lors du premier TP)
  • :!: penser à vérifier vos variables d'environnements avant de démarrer l'instance ORA12C
  • password system et sys: mdp:oracle

Travail demandé:

  1. Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour.
  2. Pour chaque objet de la relation object, donner le nombre de sources de la relation source correspondant à cet objet. Afficher et décrire le plan d'exécution de la requête.
  3. Abaissez au maximum le coût de la requête en créant les index de votre choix.
  4. On souhaite comparer des sources ayant le même RA arrondi à 0,1 près. Donner une requête qui donne les sources comparables et l'optimiser à l'aide d'un index approprié.
  5. On souhaite la liste des objets n'ayant pas de source correspondant. Proposer plusieurs requêtes et comparer leur plans d'exécution.
  6. En activant le traçage des requêtes, que vous formaterez avec TKPROF, visualisez la charge de travail sur votre base.
  7. Bonus: comparer une organisation classique des tables avec une organisation en cluster autour de la jointure object/source.

Il est demandé de rendre un rapport par binôme. Il sera noté en fonction du respect des spécifications, de l'autonomie observée et de la qualité des commentaires/justifications apportées. La note finale de TP sera la moyenne de toutes les notes de rapports.

Remarques: Certains problèmes liés à la taille des tablespaces (en particulier pour SYSAUX), peuvent apparaître dans ce TP: jointure manipulant trop de données ou l'utilisation “package body 'SYS.DBMS_STATS_INTERNAL'”. Il est recommandé de se connecter en tant que SYSDBA et de vérifier la façon dont les tablespaces ont été définis et éventuellement de les altérer pour passer en “autoextend”. Si les problèmes persistent, il vous sera alors nécessaire de réexécuter les scripts catalog.sql, catproc.sql, pupbld.sql (en tant que SYSTEM), et utlrp.sql