Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:licence:3i009:tmeindex

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
site:enseignement:licence:3i009:tmeindex [27/10/2020 18:32]
hubert [Exercice (préparation et explications)]
site:enseignement:licence:3i009:tmeindex [17/11/2020 00:34] (Version actuelle)
hubert [SQLWorkbench]
Ligne 9: Ligne 9:
  
  
-====== TME 4-5 Index ======+====== TME 4-5 Plan et Index ======
  
 L'​objectif de ce TME est de comprendre l'​utilisation des index pour évaluer des sélections:​ création d'un index, ​ choix d'un ou plusieurs index pour évaluer une requête, avantages/​inconvénients d'un index. Ce TME dure 2 séances : L'​objectif de ce TME est de comprendre l'​utilisation des index pour évaluer des sélections:​ création d'un index, ​ choix d'un ou plusieurs index pour évaluer une requête, avantages/​inconvénients d'un index. Ce TME dure 2 séances :
Ligne 33: Ligne 33:
  
 Pour ceux qui font le TME avec SQLWorkbench, ​ Pour ceux qui font le TME avec SQLWorkbench, ​
-relire les instructions pour ce connecter à [[site:​enseignement:​documentation:​oracle:​sqlworkbench|]].+relire les instructions pour se connecter à [[site:​enseignement:​documentation:​oracle:​sqlworkbench|]].
 Tous les fichiers utiles sont dans l'​archive ci-dessous : Tous les fichiers utiles sont dans l'​archive ci-dessous :
 /* [[https://​moodle-sciences.upmc.fr/​moodle-2020/​mod/​resource/​view.php?​id=76151|tmeIndex.zip]]*/​ /* [[https://​moodle-sciences.upmc.fr/​moodle-2020/​mod/​resource/​view.php?​id=76151|tmeIndex.zip]]*/​
Ligne 92: Ligne 92:
 === SQL Workbench === === SQL Workbench ===
  
-Avec SQL Workench vous pouvez créer les plans des requêtes avec des macros. Pour cela, il faut d'bord charger le fichier WbMacros-optimize.xml dans le menu Macros -> Load Macros...+==Configurer la police de caractères pour SQLWorkbench== 
 +Pour afficher proprement les plans il faut utiliser la police de caractère "​Courrier New". Pour cela,  
 +aller dans le menu Tools -> Options -> Fonts et modifier le champ //Data Font// pour sélectionner **Courrier New, 12** 
 + 
 +{{:​site:​enseignement:​licence:​3i009:​font_pour_plan_execution.png?​300|}} 
 + 
 + 
 +Ensuite le plan s'​affiche avec la bonne indentation pour voir l'​arbre des opérations : une opération fille est indentée d'un espace à droite par rapport à son parent. Par exemple, l'​opération INDEX est sous TABLE ACCESS qui est elle même sous SELECT : 
 + 
 +{{:​site:​enseignement:​licence:​3i009:​plan_bigannuaire_age18.png?​300|}} 
 + 
 + 
 +    
 +==Macros== 
 +Avec SQL Workench vous pouvez créer les plans des requêtes avec des macros. Pour cela, il faut d'abord charger le fichier WbMacros-optimize.xml dans le menu Macros -> Load Macros...
  
 {{:​site:​enseignement:​licence:​3i009:​macro1.png?​300|}} {{:​site:​enseignement:​licence:​3i009:​macro1.png?​300|}}
Ligne 100: Ligne 114:
 {{:​site:​enseignement:​licence:​3i009:​macro2.png?​300|}} {{:​site:​enseignement:​licence:​3i009:​macro2.png?​300|}}
  
-Vous pouvez ensuite générer les plans en vous positionnent ​sur la reqête ​et en choisissant ​le maros correspondant dans le menu des macros. ​+Vous pouvez ensuite générer les plans en vous positionnant ​sur la requête ​et en choisissant ​la macro correspondant dans le menu des macros. ​
  
 Exemple:  ​ Exemple:  ​
-Au lieu d'​écrire:​+Au lieu d'​écrire :
  
 <code sql> <code sql>
Ligne 111: Ligne 125:
 </​code>​ </​code>​
  
-vous ecrivez ​la requête ​ +vous écrivez ​la requête ​:
  
 <code sql> <code sql>
Ligne 117: Ligne 131:
 </​code>​ </​code>​
  
-et exécutez ​le macro p3 (touche F1 du clavier) avec le curseur dans la requête.+et vous exécutez ​la macro p3 (touche F1 du clavier) avec le curseur dans la requête.
  
 Les requêtes du TME se trouvent dans le fichier **tmeindexWb.sql**. Les requêtes du TME se trouvent dans le fichier **tmeindexWb.sql**.
- 
  
 <showif isloggedin>​ <showif isloggedin>​
Ligne 453: Ligne 466:
 ===== Exercice 3. Comparaison de plans d'​exécutions équivalents ===== ===== Exercice 3. Comparaison de plans d'​exécutions équivalents =====
  
-Pour une requête donnée, on veut étudier plusieurs plans équivalents afin de comparer le coût de chacun d'​entre eux. Rappel pour afficher le coût, utiliser ''​@p4''​+Pour une requête donnée, on veut étudier plusieurs plans équivalents afin de comparer le coût de chacun d'​entre eux. Rappel pour afficher le coût, utiliser ''​@p4'' ​ou la macro associée à la touche **F2** dans SQLWorkbench
  
-=== Directive pour forcer/​empêcher l'​usage d'un index ===+==== Directive pour forcer/​empêcher l'​usage d'un index ====
 Énumérer les plans équivalents revient à considérer toutes les combinaisons entre utiliser des index ou pas en ajoutant les **directives** ''​index(Table Index)''​ et ''​no_index(Table Index)''​ dans les requêtes SQL. Le 1er paramètre est le nom d'une table ou d'un alias déclaré dans la clause ''​FROM''​. Le 2eme paramètre est le nom d'un index. La syntaxe est détaillée ci-dessous. Énumérer les plans équivalents revient à considérer toutes les combinaisons entre utiliser des index ou pas en ajoutant les **directives** ''​index(Table Index)''​ et ''​no_index(Table Index)''​ dans les requêtes SQL. Le 1er paramètre est le nom d'une table ou d'un alias déclaré dans la clause ''​FROM''​. Le 2eme paramètre est le nom d'un index. La syntaxe est détaillée ci-dessous.
  
Ligne 894: Ligne 907:
  
 ===== Questions fréquentes ===== ===== Questions fréquentes =====
- 
-- Emacs : avant d'​exécuter une requête (avec Ctrl-C Ctrl-C) vérifier qu'​elle est bien suivie d'une ligne **entièrement vide** ne contenant aucun espace. 
- 
 - Directives d'​optimisation : attention à la syntaxe. Ne pas confondre les caractères //étoile// ***** du commentaire et celui du //select étoile//. La ligne contient ​ 3 caractères étoiles. Le caractère //plus// + est collé au premier caractère étoile. - Directives d'​optimisation : attention à la syntaxe. Ne pas confondre les caractères //étoile// ***** du commentaire et celui du //select étoile//. La ligne contient ​ 3 caractères étoiles. Le caractère //plus// + est collé au premier caractère étoile.
  
Ligne 912: Ligne 922:
 - La cardinalité estimée (ROWS) d'un opérateur semble être celle de l'​opérateur parent. Pour certaines opérations binaires, la cardinalité de l'​opération est indiquée sur le fils de droite plutôt que sur l'​opération elle même. ​ - La cardinalité estimée (ROWS) d'un opérateur semble être celle de l'​opérateur parent. Pour certaines opérations binaires, la cardinalité de l'​opération est indiquée sur le fils de droite plutôt que sur l'​opération elle même. ​
  
 +- Emacs : avant d'​exécuter une requête (avec Ctrl-C Ctrl-C) vérifier qu'​elle est bien suivie d'une ligne **entièrement vide** ne contenant aucun espace.
  
  
site/enseignement/licence/3i009/tmeindex.1603819929.txt.gz · Dernière modification: 27/10/2020 18:32 par hubert