Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:tp:adminbd:tp2:2014 [2015/02/03 14:29]
ecoquery
enseignement:tp:adminbd:tp2:2014 [2016/02/04 16:30] (Version actuelle)
nluminea
Ligne 3: Ligne 3:
 L'objectif de ce TP consiste à explorer les possibilités d'optimisation de requêtes d'oracle. L'objectif de ce TP consiste à explorer les possibilités d'optimisation de requêtes d'oracle.
  
-Remarque: les IPs des machines virtuelles seront fournies lors de la première séance.+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: Informations techniques:
-  * Base de donnée: petasky +  * Base de donnée: ORA12C 
-  * login / passwd sur la base petasky: petasky/petasky +  * login / passwd sur la base ORA12C: petasky/petasky 
-  * :!: modifier ''/etc/hosts'' pour prendre en compte votre ip et votre nom de machine +  * :!: 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 à démarrer le //listener// puis l'instance petasky +  * :!: penser à vérifier vos variables d'environnements avant de démarrer l'instance ORA12C 
-  * password system: oramdp+  * password system et sys: mdp:oracle
  
 Travail demandé: Travail demandé:
-  - Charger les données de ''/data/csv'' dans le schema ''petasky'' en utilisant ''sqlldr'' 
   - Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour.   - Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour.
   - 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.   - 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.
-  - Abaissez au maximum le coût de la requête en créant les index de votre choix. \\ Bonus: comparer une organisation classique des tables avec une organisation en //cluster// autour de la jointure object/source.+  - Abaissez au maximum le coût de la requête en créant les index de votre choix. 
   - 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é.   - 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é.
-  - On souhaite la liste des objets n'ayant pas de source correspondant. Proposer plusieurs+  - On souhaite la liste des objets n'ayant pas de source correspondant. Proposer plusieurs requêtes et comparer leur plans d'exécution.
   - En activant le traçage des requêtes, que vous formaterez avec TKPROF, visualisez la charge de travail sur votre base.   - En activant le traçage des requêtes, que vous formaterez avec TKPROF, visualisez la charge de travail sur votre base.
 +  - 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.// //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//
 +