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 [02/11/2020 15:36]
hubert [Configurer la police de caractères pour SQLWorkbench]
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 91: Ligne 91:
  
 === SQL Workbench === === SQL Workbench ===
 +
 ==Configurer la police de caractères pour SQLWorkbench== ==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,  Pour afficher proprement les plans il faut utiliser la police de caractère "​Courrier New". Pour cela, 
Ligne 98: Ligne 99:
  
  
-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+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|}} {{:​site:​enseignement:​licence:​3i009:​plan_bigannuaire_age18.png?​300|}}
Ligne 104: Ligne 105:
  
        
- 
 ==Macros== ==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...
-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...+
  
 {{:​site:​enseignement:​licence:​3i009:​macro1.png?​300|}} {{:​site:​enseignement:​licence:​3i009:​macro1.png?​300|}}
Ligne 115: 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 126: Ligne 125:
 </​code>​ </​code>​
  
-vous écrivez la requête ​ +vous écrivez la requête ​:
  
 <code sql> <code sql>
Ligne 132: 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**.
Ligne 467: 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 908: 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 926: 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.1604327809.txt.gz · Dernière modification: 02/11/2020 15:36 par hubert